Classes provide an abstraction which is at a higher level than what Self provides. The proliferation of classes and the variety of code organizational schemes may be an impediment to this style of language. Navigational aids become very important when the language provides this much flexibility in organization. To be successful, a language of this time would need a well-developed development environment. Self may not provide sufficient benefits over the traditional class-based OO languages for programmers to switch paradigms.
Many programmers are quite comfortable with the idea of assigning variables directly.
Classes need not be defined, therefore there is no need to define what class a class is. Easy to make unique objects. In Smalltalk, unique objects demand unique classes. Classes not necessary. They can be emulated in Self, but need not be.