When you inherit, being it for specification or implementation, you're signing a contract with all what superclasses implement. Sometimes it is worth the risk, other times it isn't.
I'm in for composition over inheritance, but Smalltalk is so malleable I wouldn't implement any restriction. Otherwise you'll have to enforce something like interfaces. Regards, Esteban A. Maringolo