Why do you think it's so common? I mean, as a lisp/forth guy I can certainly buy the idea that everyone does a stupid thing for a long time, so I could understand if there wasn't a reason, but surely some kinds of high-level optimization are easier if your code has a tree structure, no?