> they make semantics clear in one place in the source code For this reason per-module macros invocations should maybe be restricted to the top of the module (as `#? strongSpaces` is now), with only imports and static code allowed before them: the user anyway has to look at the module's top for imports, to know how to read/understand the module's code. But anyway for now imports are allowed throughout the modules, to read a part of it the user has to look through all preceding top-level code. The proposed per-module macros are supposed to be invoked only at the top-level too, not much difference with imports.
> Who gets to dine first? The macros are invoked in the order in which their invocations follow, the user is in full control, the macro's author doesn't and shouldn't decide this. It's the same with today's per-block and per-routine macros, again no difference.