(Oddly enough, some waitress was waving back at me, apparently thinking I was someone else.)
CLOS+MOP is certainly one of those very lispish things. Like Escher's drawing of two hands drawing each other, it allows the user to specify the system using the system's own mechanics in a "metacircular" way.
This was Pascal's first time giving this particular lecture, and I found it effective in breaking the ice so one can confidently move into the subject. There is a lot to the MOP: software engineering ideas, as well as an evolution from the simple dictatorship model of user interaction. Enough ideas to be distracting. So such an overview is useful.
Pascal started out with slides talking about the motivation from a user's perspective -- how does an implementor choose between two tradeoffs which vary wildly in performance, when only the user has enough info to competently decide? After sketching out how the metaobject protocol solves such a situation, he stepped through the various subprotocols' steps (listed at the end of Andreas Paepcke's paper), showing where the MOP opens things up to the user.
I think the MOP is an effective view into CLOS; it's boring to learn a static system where all the tradeoffs have been decided beforehand. It's interesting to see a dynamic system where you can join the dialogue if you're so inclined. And the big win is the dialogue may be a later optimization step, if ever.
(If you have a copy of "The Art of the Metaobject Protocol", I think the intro and chapter 5 would go along well with Andreas's paper. And there are more papers riffing on the MOP's design/engineering.)
This reminded me of Jonathan Rees's game-theoretic point about lisp being for the lone hacker and Java's sadomasochism existing to protect you from bad programmers. (My tentative opinion is that a powerful language can allow you to fashion a good defense. But I don't have experience here.)
Of course, there was a solid business justification. The work was highly iterative where code was frequently rewritten, and the client made an educated decision after taking a long period becoming comfortable with lisp. [Paid advertisement: "Another Lispworks success story -- who needs Franz's '1st class environments' when you have a 1st class environment?"]
(Earlier, Pascal lent me a copy of Robert Floyd's Turing Award lecture "The Paradigms of Programming" -- the sanest treatment of paradigms I've ever seen. It seems back then he viewed software paradigms as these little techniques that a complete programmer might be conversant with. Now, they've "evolved" into religions, and warring martial-arts schools.)
"How can there be methods and systems to arrive at something that is living? To that which is static, fixed, dead, there can be a way, a definite path, but not to that which is living. Do not reduce reality to a static thing and then invent methods to reach it." -- Bruce Lee
Incidentally, that Floyd lecture even mentions his first epiphany with lisp.
Oh, I recently noticed Arthur was credited with helping out the Series folks with their implementation. So if you are a functional junkie looking for the next lazy eval fix, remember to speak with him.