In the end, everyone who cares about this tiny attack vector uses wallets that were born encrypted. And Armory does guarantee that born-encrypted wallets are secure.
If you're worried about (2) and (3) and electron-tunneling microscopes pulling your key off even after shredding: create your wallet encrypted and never remove the passphrase! Problem solved!
The problem is not solved for people who
don't know about these things, create an unencrypted wallet, then later learn about the danger and encrypt the wallet, then their computer gets stolen, but it's okay because their wallet is encrypted, so they restore from a backup only to find that all their addresses have been cleaned out completely, then they sue you because you "guaranteed" that their unencrypted wallet would be overwritten. I am not suggesting that you find a way to ensure that unencrypted wallets are completely destroyed (since that's almost impossible), just that it's probably not the best idea to make guarantees with other people's money that you can't back up.

I never guaranteed it! Or rather, I never intended to. What I "guarantee" is the file format does not allow for leftover plaintext keys when you encrypt an unencrypted wallet. I was very careful about that. If the filesystem has in-place file modifications, then so do my wallets.
Plus, that whole open-source license thing prevents me from being sued, in the event that it doesn't work as expected

. But I poured my heart into this wallet for weeks, and 1000 lines of unit-testing. I'm very confident it's as good as it can get.
On that note, there's probably a good chance that encrypting in place
will work, because the file size isn't changing at all when the keys are encrypted. So the filesystem has one less reason to rewrite the data to a new location on disk. Again, no guarantees, but it's a pretty solid solution!
P.S. -- you'll notice that my quote was "the new file is guaranteed not to contain unencrypted key data" I didn't say anything about the hard-disk
