В смысле, чтобы в биткод компилить можно было. Тут уж точно лишняя прослойка ни к чему, иначе отладка превратится из "где я ошибся" в "какая из черепашек пиздит".
Мне казалось, наличие промежуточных AST наоборот упрощает процесс рассуждений о компиляторе, не?
Для начала сойдет, но потом всплывёт проблема с отладкой, а именно с дебаг инфой. Тут уж, несмотря на мою нелюбовь в ллвм, лучше биткод с дебаг инфой генерировать.