the problem is that making the write barrier be part of the rename requires changes to all filesystems on all operating systems, and applications are only safe if they are running on a new enough version of an OS.
doing the fsync before rename works on all filesystems on all operating systems, but requires changing the applications.
if the applications push this into the OS/filesystem they will need to document that they are unsafe on any but (...) which is a list that will change over time without any control (and probably without the knowledge) of the application developers. but if they put in the fsync they work with everything that's on the market today.
they don't have to do the fsync of the directory if they don't care which version of the file exists after the crash, just doing it for the data is enough.