Mason is just plain uninformed about data, code and macros.
Anyone who ever programedprogrammed in dBase would know how useful single line macros were to making reusable code. Although I haven't programmed in Lisp, I have read from many others who swear by compile time macros. The idea of injecting code into your code at compile time is used in a simple form in every C program with the "include" directive. Because Lisp can do this with a Lisp program and because Lisp is highly reflective, you get much more flexible includes.
Any programmer that would just take an arbitrary text string from the web and pass it on to their database isn't a programmer. Likewise, anybody that would allow "user" data to automatically become executable code is obviously stupid. That doesn't mean that allowing programs to manitulatemanipulate data at execution time and then execute it as code is a bad idea. I beleivebelieve that this technique will be indispensibleindispensable in the future which will have "smart" code actually writing most programs. The whole "data/code problem" or not is a matter of security in the language.
One of the problems with most languages is that they were made for a single off line person to execute some functions for themsevesthemselves. Real world programs require that many people have access at all times and at the same time from mutiplemultiple Cores and mutiplemultiple computer clusters. Security should be a part of the language rather than the operating system and in the not too distant future it will be.