Today's interesting observation: while both indymilter and miltertest say that the defmacro command is only available for connect, helo, mail and rcpt stages, postfix will happily try defmacro-ing header and body too.
Both indymilter and miltertest insist on defmacro having at least one macro declared, postfix will happily send a defmacro with no macros present. I suppose that's for clearing them?