This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
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.