@timtasse right, I see what you are saying. Here is the trouble with it: the includeDocs fetches the documents in the background already, so when you call .document() on the API (which you can do btw even when not setting includeDocs(true)), it is already loaded. There is no way to “carry over” the generic type that is used at a later point, because then the document is already loaded.
Also the other way round you need it set, because even when set on includeDocs properly, you can’t carry over the generic type into the .document call. And while I think about it, it is even possible that different documents return different types. Keep in mind that the includeDocs was only added as an optimization for the blocking API, if you are running non-blocking there is nothing to gain from just calling .document() when you need it.