In reality, Bitcoin only gives you a degree of anonymity. It gets you out of the scope of the NSA casually fishing through bank records to find likely names/addresses of people, but if somebody REALLY wants to find you, sooner or later, they will. The more you interact with or trade with people, the more traces you leave.
In short, don't depend on bitcoin to keep you out of jail if you're breaking the law. It isn't designed for that. It is meant to keep you out of reach of "fishing expeditions", not a concerted law enforcement effort.
Coint taint is the biggest flaw to Bitcoin fungibility.
Now imagine the government tax and law enforcement authorities crack down in the coming years (and the G20+NSA are announcing this intent) wherein they say if you can't provide the identity of whom your purchased your coins from and sold your coins to, then all tax and criminal liability from the time of mining until the future is all yours. Because there is no way for you to otherwise prove that you didn't buy the coin from yourself and sell it to yourself.
So with that very simple ruling, the governments can at-will force all anonymous coin holders (past and present) to be revealed, because nobody is going to accept a coin without identity history any more.
You could still try to find someone to accept your anonymous coins, but since most users are not anonymous, your effort to find such vendors and market for your anonymous coins will become untenable.
This is why the only way I can see to keep fungibility (without losing anonymity entirely) is to make most of the users anonymous, and that includes all their IP addresses when they transact.
CoinJoin and Dark Wallet won't do this.
And Tor is not strong enough, as it can be foiled with timing analysis by an entity that can see all packets, such as the NSA.
So the reality is that Bitcoin will be the government coin. You see how easily the U.S.A. government effectively controlled the outcome of Mt.Gox.