Of the first set of answers, one doesn't end up with an empty hash, and one is inefficient. Of the second set of answers, only one is correct, the other three are not guaranteed to work.
I must be missing something obvious, because I can't quite see why they wouldn't work. But since you say it applies for three of them, it could also be true for the inefficient answer from the first set.(Which I posted without actually looking at the question, in reply to someone posting one of the ones in the second set.) Is this so?
I'm sure I'll bang my head on the wall once you spill the beans, but what is it that I can't see?
Makeshifts last the longest.