>>2
I'm exaggerating a bit but in my experience, the bigger the CL program, the more it looks like a C program, boilerplate and verbosity and all. They still make good use of macros but it's often doubtful whether the chosen macros add much (a lot of the time it's to avoid repeating a single trivial argument to a function call and such). The rate of use of higher-order functions in big CL programs is usually less than or equal to the use of the same in equivalent C programs (when counting both passing structs with function pointers and simply function pointers in C programs). CLOS is used, but it's often used in moderation (a GOOD thing, but that means that the useful properties of the language are being neglected).
An example of that is
http://www.ffconsultancy.com/languages/ray_tracer/verbosity.html
(though to be taken with a grain of salt since the author is a huge f# shill, formerly ocaml shill, and it's clear he took creative liberties in a few spots - the main principle still holds).
Another example (at the end), also to take with a grain of salt, perhaps a smaller one though (since it comes from norvig):
http://norvig.com/python-lisp.html
Finally, neither of these are real large lisp programs, I only chose them because I thought they were representative of what I see at large. Here's an example of a large lisp program that exhibit these patterns I talked about:
https://github.com/fare/asdf
For trivial examples, lisp can be shown to be much more expressive than C, but for non-trivial examples, that goes the other way, I find.
Scheme languages, on the other hand, really don't have that problem.