Not having recursion can indeed lead to "ugly"
code, as Frank put it, as the iterative form of a recursive function tends to obscure the natural logic of what otherwise would have been an easily identifiable method.
@Phopojijo - Thanks for the laugh
@Cyrill - When you DO implement recursive macros please don't place restrictions for its use. If you are going to try and prevent the programmer from "looping endlessly" at least set the upper bounds high enough that, for example - after the 1000th invocation, a fatal occurs. I'm sure someone in the world will eventually want that removed too but I just don't want to hit any artificial glass ceilings. I know where my power button is when I lock up my machine