That can be desirable but there are a few challenges:
- The compiler code becomes more complicated, making correctness harder
- The compiler might become slower to run
- Introducing new languages features may become harder, again due to code complexity