I spent some time this week writing some documentation on how some of
the internals of our CLOS implementation work: specifically, the
various strategies for discriminating functions (and the run-time
adaptability), and the various optimizations done on slot-value forms.
Please read what I've written and tell me (no, tell us :-) about
things which aren't clear...
(Hopefully soon the internals manual will be accessible from the sbcl
web presence, but in the meantime it's in doc/internals of an sbcl