I have been trying to write a macro for a long while -) and i think if there were a facility such as a "tree parser" then it would be easy to write common AST transformations ( see http://www.antlr.org/wiki/display/ANTLR3/4.+Tree+Parsing ) because then you can see graphically what's going on.
Probably, Araq already knows how to improve current macro facility but If this idea helps to improve the system then it's worth to mention here.
Even trivial macros still look damn hard to develop and almost impossible to support for me, it's from the newbie's point of view, because i've never programmed in CL and other macro-rich languages...