I have sucessfully imported an wallet.dat file created in 2013, with the new wallet complaining only one public/private key pair was unreadable. But the balance was the same, so v2 software likely just silently ignored that key anyway.
However, I only did this as an experiment! As cryptonit wrote many times, it's not safe procedure and if possible should be avoided.
The process of exporting / importing the keys can of course be scripted. The v2 and v3 wallets provide RPC interfaces where you can query for the list of addresses in the wallet, then for their private keys, build a list and then similarly feed the private keys to the new wallet.
A piece of cake, just few lines of shell code
That's a brilliant IDEA!