I respect your knowledge in this area and most certainly don't expect every single write to be synced to disk instantaneously, but I also don't expect commonly used apps to have all their files truncated every time a system goes down hard. If the lack of commit left them in their previous, non-truncated non-updated state, it would be a lot more livable.
I'm not a Linux programming guru by any measure, so I don't understand what is probably entirely obvious to you: Why the truncation seems to be committed independent of the other (not committed before the hard-reset) changes. It seems like you enterprising devs would find a way to cache the truncation of the file so that it's not done until the next change is committed.
BTW: no thanks on the IBM mainframe - I got tired of programming IBM mainframe/minicomputers 10 years ago... if the FS code was in RPG, I'd be able to contribute some help, LOL. :)