The main issue with default client is it merges wallet w/ back end.
IMHO bitcoind should exist as a silent headless service running 24/7 acting as node. A client (satoshi client or any client) would simply launch on demand, decrypt wallet (as needed), and get balance/confirmation updates from bitcoind or submit new transactions to bitcoind with no lag or delay.
The tight coupling of blockchain functionality and wallet functionality is not optimal.
+1