This is really interesting and might answer why I have observed strongly varying performance while writing data to files - all my tests were done on Windows.
Maybe it has something to do with caching that Windows performs on recently/frequently accessed files? In my reading tests I have tried to compensate for that by manually clearing read files from the cache, but I am not sure if it was successful.
So maybe also for reading there is an optimum batch size for one read call that would bring you closer to max of your drive? I have tested it on 3 different PCs and 7 or 8 drives and the pattern was stable, just different for each drive.
I on the other hand should repeat those tests on Linux to see if that solves the problem for my use case as well.