1. Ok. So is there an alternative bitcoin wallet/client I can use that lets me work with addresses better, instead of accounts?
2. I keep ending up with new addresses in my local wallet everytime I send out bitcoin. Are you saying I will eventually end up with zillions of such change addresses? I realize that maybe with this client, I am supposed to use accounts, so the addresses are not visible, but this does not seem very long-term. I had written an application that was simply generating new receiving accounts and adding them to the local wallet. Eventually if you have hundreds of thousands of such addresses, the bitcoin client runs really slow!
3. Well, going back to #2... I want to pay you 15 dollars out of my 20 dollar account. I want the change to end up in my original account. It now ends up in another account. I can't avoid this as you said I can't in #2. So now I have to manually move it back to the first account. So now I have this new account where the change ended up and I want it removed. Why would I worry about someone funding that now?
4. Basically, what bitcoind is saying is my balance for a given public address is not what blockchain.info is saying. They disagree. How is that possible?
1) You can't. Your options are to use a patched version of QT client "coin control" or a different wallet
2) You can't.
3) You can but you need to use pywallet. There is little reason to delete addresses. If you delete it and someone sends funds there, they are lost forever.
4) No idea going to need more details.