[Martin v. Löwis]
As Guido explains, fsync is not necessary for that kind of application on a POSIX system. Once write(2) has completed, all other processes immediately see the changed data.
But we're not calling write(2) -- Python's file.write() (which my little driver used, and also what ZODB uses) calls the buffered fwrite.
Ignoring that, some systems aren't "pure". I note that, on my Windows box, some Cygwin utilties "see" the hoped-for file sizes while running my driver without the fsync under Cygwin Python, but Windows utilities don't. I was using Cygwin 2.2.2; I don't know whether 2.3.1 under Cygwin thinks fsync has gone missing.