The syntax of those defines sure looks weird. In what dialect does the name of the function being defined appear as the CAR of a list, followed by the parameters?
Very interesting! Maybe preprocessors really are the way to go for PHP, even if it were just for ironing out its inconsistencies (not to mention implementing a whole new language on top of it, as in this case).
But why those square brackets for argument lists? That seems unnecessary.
With the decline in Usenet traffic, that's much less of a problem nowadays. I haven't seen any spam in comp.lang.lisp for the last 2 years at least. It's pretty much all signal, and mostly high quality too.