Yes, I guessed so too. The .getClass stuff we do for type checking will be the death of 'null' at entry itself.
Otherwise, the serializers are now entirely pluggable and are type agnostic – they are not limited to just Writables and if I wanted to write a generic serializer with <Object, Object>, I could as well do that (and nulls may be OK then, sometimes). This is what I was wondering about – but given the first point, I think it is not possible to pass a genuine null at all.
I think it is alright to look for NPEs before the map output buffer runs into them (while doing those getClass stuff) and show a proper message ("Received k/v was null" or so?).