If you first mark a block as used, and only then write the block,
the filesystem won't be corrupt when the system crashes inbetween.
However, your DATA will be corrupt.
I think it's better to have fsck detect a broken filesystem, than to
have a file silently contain bad data. As far as I know, Linus also
thinks this way.
You also eliminate the possibility of reordering writes at the
driver or drive level. (e.g. "tagged queuing" is forbidden...)
All this would be very hard to debug: You'd have to try throwing
the switch on your system quite a few times to be sure it works.
Roger.