The FSIndexOutput, in FSDirecotry, opens the output file stream for Write/Append (W/A), but no Read. This is an issue when Windos wites to remote files. For local storage files the Windows cache manager is part of the kernel and can read from the file even if it is opened for W/A only (and it needs to read the current content of the page). When accessing remote files, like SMB shares, the cache manager is restricted to the access mode requested from the remote system. In this case since it is W/A every write, even a single byte, is a roundtrip to the remote storage server.
Openning the output file stream for Write and Read, which does not impact other functionality, allows Windows to cache the individual Lucene writes regadless of their size