Потому что это уже должен быть полноценный компилятор, со всеми фичами нормальных компиляторов по работе с аст. Такой сейчас только вроде google closure
Ну почему, я думаю какой-нибудь obfuscator io сначала ast строит, не регулярками же он заменяет переменные. А если есть AST то можно условия менять.