Not allowing macros means a more standardized reference implementation, which translates to a more readable code overall.
Nicer, AST-level macros can be better, but can also be a pain (see Lisp, C++ for examples of either).
Not allowing macros means a more standardized reference implementation, which translates to a more readable code overall.