TeX has a lot of shortcomings as a language. When I was writing my dissertation I would have been able to list plenty of them, but the most obvious was the gratuitous use of dynamic scoping instead of lexical scoping.
It can be very tricky to selectively expand parts of a subexpression to create a block and then return to the head and execute the block you've created. Without lexical scoping it's difficult to safely create CPS macros.
It can be very tricky to selectively expand parts of a subexpression to create a block and then return to the head and execute the block you've created. Without lexical scoping it's difficult to safely create CPS macros.