ну а зачем эти деревья? чтоб компилятору разбирать выражения или что
Чтобы в рантайме разбирать выражения.
Обычный скомпилированный байт-код не очень удобен для интроспекции. Поэтому для случаев, когда ты хочешь компилтаймовое выражение обойти и что-то с ним сделать в рантайме, тебе дали возможность передать его в рантайм в виде, напоминающем AST.