refactoring note - your class should not depend on return value, but rather on double-dispatch (allowing you to extend what can be dropped to GenericInputMorph even without touching it) so test for isNil is IMHO wrong way of doing it as well as need for<~ special operator.
Everybody has his own style. I don't buy "best" coding practice. My coding is a personal craft, and while it is always evolving, it will never obey any specific guidelines. It's just not the way I do programming.
Best,
Stef