The problem is slightly more difficult than just choosing the location of the wallet file.
The problem is BDB: our wallet file is not just a standalone file, but lives in a Berkleley Database environment, which consists of several files (including log files the database files refer to). Being able to have the wallet be stored in a placed independent from the other databases requires splitting the database environment in two. There are several difficulties with doing this, and it's not a real solution.
The real solution is moving away from BDB for wallets. It was a bad design decision to use BDB for wallets, and has caused us numerous problems already. We've been working on implementing a new wallet format that doesn't depend on a database before, but there have been more urgent issues recently.
In short: yes this needed, yes it will be implemented, but no it's not that easy, and it probably won't be done very soon.
Thanks Pieter for your patient response, but just humour me a little further:
So are you saying wallet.dat effectively comprises a table in the BDBE - does BDB not support linked tables?
If wallet.dat is linked in with these other database files, how come it can be renamed and replaced with a new wallet.dat without any discernible difference apart from I can now send BTC from my new wallet -what difference does the BDB see if this file is outside the data folder? If Access can manage linked tables... - I know, bad example ;-)
n8rwJeTt8TrrLKPa55eU - cheers for pointing out that BTC security is not all about trojans and keystroke loggers. Having a mounted outer with a hot wallet or hidden volume with account wallet, if done right, should be indistinguishable to any shell history or log entry, and thus retain plausible deniability. Trojan wallet stealers should be thwarted by the wallet encryption, but someone physically forcing you to reveal your passwords on any visible file can only be addressed by hidden volumes and only then if they are much smaller than the outer volume.
gmaxwell - your holier than thou, coder superiority is not helpful, with you pull requests and shell histories. The -walletdir thread was posted over 18 months ago by Stephen and promptly died. We all appreciate the amazing work you guys are doing getting the bitcoind to it's current state, but most of us don't understand what's behind the system and that's only going to grow as adoption increases - embrace the eternal September dude, most people don't have the time to understand the ins and out of BDBE, we just see features that we would like or things we'd like to change. Bitcoind is still a terrifying prospect to install and use for most mortals, when it comes to storing actual wealth on your computer. Making it clear which files actually give you (or any thief) access to your cash, should be one-syllable-a-minute, crystal clear to the most sausage-fingered retard able to switch on a PC. If someone would like to point me to the pull request list, I'd happily hammer it up there.