I think you are right about that...I think in most cases, when a data structure is expected, it should be an empty one rather then a null.
Also the inconsistency in the getUserPrinciple() in the servlet spec returns null when no principle is present, but in EJB it returns an empty principle object. (There is also a naming inconsistency, to top it all off, in EJB the same method is called getCallerPrincipal() ).
I don't think the spec architects collaborate that much.
Anyway, that just seems strange to me, uniformity is lacking in most specs.