I was pointed to this artima weblog by a (not yet archived) post in ll1. It says that macro is one of the devices that distinguish LFSPs (Languages For Smart People) and LFMs (Languages for the masse) and goes to analyse their implications.
The blog author cites Gilad Bracha who advocates against the introduction of macros in Java because it is a LFM: The advantages of Java is that it easily serves as a lingua franca - everyone can read a Java program and understand what is going on. User defined macros destroy that property.
What do you think?