Hah. I was with you up until the last line. Macros do exactly the same thing as spring-aop - they transform your function into some different code, so that when it's called it does something different to what was written.
/scala guy, very worried by the introduction of macros, despite (perhaps even because of) all the cool things they can do