No, there doesn't have to be. CoinJoin is a technique for mixing on the block chain that can also be used for payments. If widely deployed, mixes look like regular bitcoin activity.
That technique saves you from the bad reputation of the mixer server. However you lose the ability to lose temporal information and the amount of payments made together with yours is probably quite a lot lower than what is achieved with popular mixer server. And it does not save you from bad reputation of your mixing partner.
Someone mixes with you to pay drugs to a silk road advertised wallet -> you could get interrogated and you'd have to reveal as much info as you have on the persons you mixed that particular transaction with.
Or you mix with someone who has not kept their wallet untainted -> they can get interrogated and thus reveal who you are.
Don't get me wrong here. I don't dislike bitcoin. People just tend to give it features that it doesn't have.
What bitcoin is: Awesome solution to the byzantine generals problem. It allows parties that do not trust eachother to verify that someone has exactly the amount of coins he claim to has. Basically it solves the digital equivalent of forged money. A bookkeeping service for parties that do not trust eachother.
What bitcoin is not: Anonymous in any way. Pseudonymous at maximum. Maybe safe to your spouse using techniques like that. Not a way to evade taxes, nor a way to easily facilitate any illegal fund transfers etc. It might be that way now but only because IRS has not put up an unit to analyze it yet. It is not anonymous against adversary with actual resources.