Sorry, I still don't get it.
What do you mean with scaling issues? Is one bitcoind not connected enough, too ressource-hungry, too slow, too insecure?
Have you ever had over 100,000 address, it becomes slow, it becomes resource hungry, so I use two bitcoinds that complement each other and spilt up holding the addresses. Also it was never ment to be use in high traffic situations.
Several wallets.. Why not having all addresses in one wallet.dat, and having "virtual wallets", like groups of addresses tagged in a database or the like, and catching newly-"created" change addresses and tagging accordingly.
Cause the wallet.dat gets bloated and if i need to fix a stuck transaction which is basically do a -rescan on the transaction to free it on my personal computer, it takes so long upwards of hours. With smaller wallets it goes a little faster. Also different wallets for different sites.
Security? If you don't trust bitcoind enough, write/use a different one! ;-)
Spreading out between several (insecure/untrusted) instances lessens the value lost for each incident, and heightens the risk it actually happens.
This has nothing to do with security, while it does provide better security having your funds spread out, but not the main reason someone would do this setup.
How about, instead of a project with a bitcoind cluster, enhancing bitcoind directly to overcome the limitations you see?
You really can't enhancing the bitcoind for this with out a rewrite, and I am not doing a rewrite cause the software works good already and I don't have the time. My project would levage multiple bitcoinds, to solve this issue and make it more robust.