OTOH, RTML turned out to not be as useful. The structure editor could equally well have manipulated some kind of functional composition, I suspect. I was hoping that I could persuade myself that statically typed FPLs were equally powerful, but I'm not at all sure that's the case. One use of macros is emulating higher-order polymorphic functions. In C, this is the only way to achieve parametric polymorphism.
Functional languages offer higher-order polymorphic functions natively.
In a more refined form, macros can implement a limited module system. Finally macros can introduce notations. A well-chosen notation organizes the mind and makes important ideas easier to see and communicate. For example, message map macros make defining COM interfaces easier. The most elevated form is macros generating macros.