Having said that, though, proper use of string mixins with CTFE and templates ('scuse me, *compile-time arguments* ;)) can be extremely powerful, and one of the things that make D metaprogramming so awesome.
Sure, just like m4 and cpp can be extremely powerful. Too powerful…