Macro should be at the beginning of a tiddler before anything else.
IMHO there could be an exception: including macros.
Here is my use case: I'm writing a tutorial/how-to about difficulties in TW programming. I illustrate my points with sample macros. I want to show the code within my articles and expose the output of invoicing the macros there as well.
I don't want to copy-paste the code. This is not pedagogic and prone to errors.
I know how to do this for code which does not include macros.
For code with macro definitions, my how-to tiddler would begin by
{{my-sample-macros]]
which would be replaced by
\define foo() bar
which would be OK as far as macro definitions is concerned IF my exception was an implemented feature.
Now' There could be a way around if there is a mean to dynamically create a new tiddler with the include already done, a tiddler that I would use for viewing, keeping the tiddler with the macro-including-start as a source of my tiddler. I have not yet explored that way as I am deeply ignorant about dynamic creation of tiddlers yet.
--
Jean-Pierre