Spying on a bitcoin user after knowing all of their addresses
If you know all the addresses the person has, you automatically know their bitcoin balance. Generally, it's not easy to know all the addresses associated with a person because creating an address costs almost nothing. Proposals like BIP47 create them on the fly based on the wallets of the two parties, so yes, there is a way to stay anonymous at least on the blockchain.

The thing you have to worry much more about isn't the bitcoin aspect, it's actually everything around it. If you ever order something from NewEgg using bitcoin, that associates the addresses to you right away. If you have an account at Coinbase, that associates you to your address. It only takes one slip before a determined adversary can associate you and your bitcoins.