Interesting! I wrote a Smalltalk in CL last year that did the same kind of mapping: Smalltalk classes compile to CLOS classes and every message is a CLOS method. Worked great at the start and then performance dropped off as more classes compiled.
I never took the time to get that sorted out but it smells suspiciously similar to what you described here. Thanks for the write up!