Red: That's the whole point of the multiple addresses. You can send from any of them, thus they can't be linked together. Having everyone know about every transaction is required of the algorithm to keep everything secure.
Yes, I understand that completely. However, bitcoins create a complete public transaction graph showing who has transacted with who. This gives away lots of correlation information. Someone else drew some nice graphs in another thread.
The obvious initial identity leak is in purchasing coins. Since making fiat payment often comes with identity information you have a potential leak there. Also since on purchase, coins are likely transmitted in a single transaction to a single bitcoin address, it becomes an anchor account tied to your paypal account. (depending on the precautions of the market of course)
A second obvious identity leak is in spending the coins for hard goods. As someone previously pointed out, this ties your real address to the bitcoin address the payment was made from.
Also vendors and users publish well known bitcoin addresses tied with either a person, organization, behavior, idea, or product. Say for example, "Donate to "xxxxx" if you want to support anonymous cheeseburgers delivery." Donating "tags" your account as belonging to a carnivore just as efficiently as a carnivore tag on YouTube.
If you trade from a single bitcoin address to multiple well known addresses, it simply corrolates more information about you. Say a naive noob bought 50 BTC and had them all sent to his shiny new bitcoin address. He then sent 10 BTC to anonymously overthrow the government. Send 1 BTC for a cheeseburger, then later decided he wanted a cool "send me bitcoins if you like me!", in his forum signature, and on his facebook page. Poof, he has now tied his anti-government sympathies, cheeseburger support, forum account to his real world facebook page. Just by being a noob. If you created a second anonymous donate account, but then naively transfered those coins to your main account, you are just as screwed. The many to one, then one-to-one pattern would be obviously apparent.
Now say, both parties took lots of precautions and created lots of intermediate accounts for plausible deniability. But unfortunately decided that access to the kiddiepron site costs 123.45 BTC. Now it is a simple matter to search for all transactions of 123.45 BTC. Then you simply follow the graph backwards and forwards until you find previous or future transactions that collate to the real world.
Generating coins is anonymous, so un-traded coins are safer. Single use bitcoin addresses are safer. Trading entire blocks of coins at once so there is no forking or merging is safer. Always trading in standard size amounts is safer.
If someone created a "trusted laundry service" (danger word) where you could transfer 100 BTC to the service and have it copy 1 BTC to each of 100 new addresses from it's coin cache, (not your previous transaction), that would be even safer.
But in all cases, the number of private keys that people have to track is going to get huge. This means the likelihood of key-loss goes up.