An Arduino isn't needed for this; just boot to a live CD to generate your keys, put the wallet.dat on a brand new, freshly opened (and maybe encrypted) flash drive or SD-card, and generate an address. Reboot into your primary OS and send some coins to that address. Maybe reboot again to test that they were received.
Are there any ECDSA smart cards out there? It'd be pretty cool to use a smart card for Bitcoin crypto.
This is pretty safe, although for large bitcoin accounts I'd still be wary of using your day-to-day, internet-connected computer. The original post is going to be a big breakthrough in managing wallets. Everybody with a sizable account is going to have one of these devices.
The next question is how to keep your secret. Ultimately you need to have a pass phrase or little USB drives that have to be read in tandem, or some combination of those. The problem with a pass phrase is you can forget it, or something can happen to you, and your coins are lost forever. The problem with USB keys is you can lose them, something could happen to them, they can be stolen, or you could have to skip town suddenly. Having both is probably a good tradeoff.
I think to make this happen, a couple of extensions have to be written for the standard bitcoin client:
1. Export an unsigned send transaction.
2. Import a signed transaction and send it out to the network.
If you have those two, the arduino device can easily generate Bitcoin keypairs and sign transactions offline. Note that you don't need a keyboard if you go with the USB drive keys. The main computer would never get anywhere near the private keys. This is about as safe as you're going to get. I intend on doing a patch, but I've got some other stuff to do first. I hope someone beats me to it.