Although I'm usually on the side of the pedants, I'm not sure how it really matters here. It's certainly true that the JLS says null is not a keyword, and that you can't use null as an identifier. They never appear to describe null as "reserved".
More importantly though, is there any useful consequence of this distinction? I mean, if the JLS had just added null, true and false to the list of keywords, and omitted any mention of the null literal or boolean literals (referring instead to the "keyword null" and the "keywords true and false" respectively) would Java behave any differently? I think the answer is no. Perhaps there's some subtle distinction at work here, but so far I can't see what it is.
Agree it would have made no difference if they had called null a keyword. But oddly enough, as you said, it doesn’t actually say null is a reserved word. The Java5 version of the JLS says exactly the same.
Those who dance are thought mad by those who hear not the music. This tiny ad plays the bagpipes: