Because CompiledMethod>>methodClass expects a classical literal binding className->class
methodClass
������ "answer the class that I am installed in"
������ ^(self literalAt: self numLiterals) value.
But there ain't no binding for the metaclass which is accessible only indirectly thru the class (you write Object class, not ObjectClass).
So it is a kind of hack to unify class and metaclass behavior...