The way I see it is if every object (-instance) can be derived from another instance that makes programs harder to understand. Classes are invariants of behavior which all their instances obey, which makes it possible to reuse your understanding of a class to understand all its instances.
It's a bit like the certificate systems we have in the human society. When someone is a certified medical doctor we know more or less what they can do, we don't have to investigate in detail do they have the skill to be a physician.
But I'm not sure this is all there is to the benefit of classes. Is it?
With objects that can directly inherit or delegate from each other you can put shared state in a parent object.
For the role of type the Self VM used things called "maps" that were not visible at the language level.
For meta programming Self introduced "mirror" objects.
Randy moved to England after they published a paper at OOPSLA so David put his PhD students at Stanford to try to actually implement their proposal. Since David just wanted to do research instead of working as a professor, he moved his whole team to the newly created SunLabs (in 1991, I think).
I gave a talk about this a few months ago: "Adaptive Compilation" -
video: https://www.youtube.com/watch?v=TO53xFACfuQ
pdf slides: http://www.merlintec.com/download/2019_slides_jecel_fast2v2....
open office slides: http://www.merlintec.com/download/2019_slides_jecel_fast2v2....
As the name of the Sun Java VM indicates, it is an adaptive compiler like StrongTalk and Self 3/4.
"Before I started down the path of making Java fast, I was told "you can't JIT code that will touch a static compiler" . Afterwards: all new languages start with the assumption "we can JIT this" in the implementation." - Cliff Click's LinkedIn (1997-2002 @ Sun Micro)
Also your username scares me a little
Can you share details?