I mean it is much easier to build recursive s-exp walkers than it is to build ones for a bunch of arbitrary CLOS objects, since in the latter case you have to know about their slots. If we want to build post-processing stages for ParenScript code, that will make it easier for us. The thing about the CLOS representation of ParenScript is that
it's very rare that you want to walk an AST in such a way that you want to visit all its nodes without caring about their types and/or the structure above them. and then you will do the same with SEXP as with CLOS objects, only dealing with positions in list instead of slot names which is much cleaner/readable imho.
but yes, the class hierarchy of the parenscript AST is far from ideal and the dwim-join function is slow and frightening.
it's a completly different story, but i think many people are overusing lists in lisp. it's very rare that a tree/list of cons cells is what you really need (thinking of the common push/nreverse idiom and such things). most of the time at least vectors would be better, apart from the fact that the syntax of standard cl favours lists and the definition of sequences is half-assed in it.
but i only care about the speed of the compiler and i'm mostly a user...
so these are just my 0.02's