I experimented with several approaches.  I could have an atomic to keep track of number of calls or bytes and then only flush after so many.  But I don't know its always sequential access.  I was thinking large files would probably get larger reads, don't slow down the small reads - but I agree if the user set it then we should just honor it always.