There is one very important cost: Memory
Assuming you are loading 1024 docs with paging, multiply that by few hundred page views ... and bang you got 1 GB for extra memory for nothing.
I had to use tricks like:
DocumentSession.Advanced.DocumentStore.DisableAggressiveCaching();
DocumentSession.Advanced.DocumentStore.Conventions.ShouldCacheRequest = url => false;
// Execute the query
// for each loaded doc
DocumentSession.Advanced.Evict(doc);
to save that amount of client memory.
It would be far more concern focused if I could have written something like:
query.Customize(x => x.NoTracking && x.NoCaching)
where NoTracking disable entity tracking for queried entities.
and NoCaching would disable request caching for them as well.
Those will be very memory-friendly for reporting needs as well.