Of course, you can still do nonsense like
stuff := aCollection ifNilOrEmpty: [42]
but at least *that* problem is easier to pinpoint when later, a debugger with a user of stuff that expected it to be a collection pops up.
If the origin of stuff as a single instance is lost to the mists of time (say, Object implements ifNilOrEmpty: and someone called stuff: with an Object without error), it's easier to end up with a solution of "fixing" the use to
(stuff isKindOf: Collection) "or is that isCollection?"
ifTrue: ["Code handling each entry"]
ifFalse: ["Code handling single instance"]
And now there's two stinks.
Cheers,
Henry