Especially, I think the format of wallet.dat needs to be documented.
I don't know the subject a lot, but shouldn't the format of wallet.dat only be part of the original implementation internals?
I mean, what matters is interoperability between nodes of the network. How a given node stores its private keys (an sqlite file, MySQL database, an XML file, separate
foo.key files...) is an implementation choice. If an alternative implementation wants to be able to read the original wallet.dat, very well, but this is not necessary at all.
But I do agree that a way to export/import the private keys of your published addresses would be useful though, in case they keep receiving coins.