This is already done at least on Linux. Actually ext4 even caches writes, to hilarious effect.
When a feature called "barriers" is turned off, ext4 will detect when a file is constantly being read and write from, and do that entirely in RAM. fsync() has no effect on this. This makes databases insanely fast, but at the cost of possible system integrity. Most desktop OSes turn barriers on, and server OSes tend to turn barriers off.
That's bizarre, I mean usually database severs want to do their own caching, and control disk flushing since they know better than the OS.