If it were my client, I would write a client that saved no private keys in its databases whatsoever. It would track your balance knowing only the public keys / bitcoin addresses, and would never require private keys except to perform a spend transaction. They could be kept offline, perhaps on a flash drive which is plugged in just long enough to do the transaction, in a file whose name is chosen by the user and not known in advance.
If it were my client, I would probably also offer an option that used an actual SQL server as a back end, so that other applications could query the balance of arbitrary bitcoin addresses and watch for incoming payments, and otherwise locally do everything "blockexplorer" can. The client would merely keep the database in sync with the P2P network.