Thanks for the quick reply Shai and Robert.
It makes sense now, but it should be documented somewhere, mainly because the behavior has change from 3.0 to 3.1. Everybody, since version 2, that used to iterate over all documents that way, still expects it to work without calling seek, at least I did.
In my opinion, being unpositioned means the user needs to be aware about docs being retrieved in any order, all that matters after all is to iterate over all documents in the index.
Another question is, if indexReader.termDocs(null) is used, where is it positioned if nothing was defined in the parameter? Shouldn't it work as termDocs()? It just feels inconsistent to me.