Meanwhile every time I read about a crash, I'm horrified by how primitive the requirements (and implementation) appear to be.
This reminds me of my favourite method for reviewing software I had never heard of: I check the release notes. If version v17 has "now uses transactions" then that means that the developers were happy to release the first sixteen major versions with data corruption as a feature. (Conversely, if the notes only mention fantastically obscure scenarios being fixed, then the basic issues have been fixed long ago.)
Battery backup being introduced in 2010 as a requirement is absolutely insane. It's not like batteries or battery backup are new technologies! This stuff has been around forever. Why on earth was this not a requirement decades ago!?