I think macros could get a huge improvement if you were able to make macro call and add parameters to a macro.
First thing would be like functions, in a macro or in the chat you could use /macroX which would call macroX and finish the current macro after completing the execution of macroX.
2nd thing would be more of a RP thing, adding parameters to a macro. For example,
/em greets <t> "$1"
$1 being something that needs to be defined at the execution of the macro. Let's say my macro is n°42
/macro42 "with a little smile." would turn into /em greets <t> with a little smile.
/macro42 "by throwing them a snowball" would turn into /em greets <t> by throwing a snowball.
etc
and we could put as much parameter as we want simply by doing /em "$1" <t> "$2" "$3" ... "$n"