I don't see any reason why we can't have the best of both worlds. Why can't the Satoshi client operate as a thin client when it's first installed, and then switch to full client mode in the background when the blockchain becomes up to date?
Because the Satoshi client likely SHOULDN'T be used by most users. As Bitcoin continues to grow and diversify the reference client will increasingly only be used by miners, merchants, service providers, and hardcore (technically capable) users. Trying to make it light and friendly is counter productive. The bitcoind portion of the reference client is used by our company (and many others). The reference client needs to be stable, secure, and provide an example for other implementations.
We should be encouraging DIVERSITY in clients not trying to create the single "uber client" which is everything to all users. While it isn't my call I think three things probably need to happen over time:
1) The reference client needs to stop being called "the bitcoin client". I use the term Satoshi client or reference client in everyday language. The developers using the term Bitcoin client creates an implied sense that this is THE CLIENT and increasingly it is the worst choice for new casual users.
2) The satoshi client should be given less prominence on bitcoin.org. All clients should be considered peers. The bitcoin.org website should deal with the protocol and provide access to all clients on an equal basis. Maybe management of bitcoin.org should be handled by someone who isn't involved in the development of the Satoshi client.
3) It would also be useful if the Satoshi client was refactored into three independent components:
* the library (which could be used by other developers to build alternative clients without rebuilding the low end code). This would prevent a lot of reinventing the wheel and keep various clients on the same core codebase. A change to the library could be easily integrated into new version of alternative clients.
* the node - providing high level abstraction of the non-wallet portions of the client. Has no concept of wallets, user interface, etc. It receives commands from client(s) and communicates with the network. Runs as a daemon or windows service 24/7 in the background. (Note: electrum server is essentially a non-reference implementation of "the node").
* the client/GUI - communicates with a node (either locally or remotely) to facilitate the actions of the user. Has no direct connection to the bitcoin network instead it sends command to "the node".
Currently the reference client is all three major components tightly integrated together which makes extending it very difficult. If other developers do extend it for custom implementations it becomes a continually challenge to keep that fork compatible with changes made to the satoshi client codebase. Tight integration between these major components stifles alternatives and results in a lot of "reinventing the wheel".