The real "selling point" for a macro
mechanism is what you can do with its macros that you cannot do with
functions. And (at least for me) the real interesting question is *why*
you cannot do with functions what you can do with macros.
Inlining for instance to achieve better performance with small
functions. Special forms for creating sublanguages...