Bitcoin can be 100% anonymous if the user knows how to cover his tracks. However I don't think our society needs 100% anonimity. From my observations the average joe does not care much about privacy. Personally the fact that Bitcoin offers a high level of anonimity when making transactions is simply a bonus on top of the more important features like decentralization.
The user covering tracks, is possible when the user is not in an serious interest, like when the user commit a fraud, crime and the user, uses bitcoin to implement the crime, the tracks can't be swept un-stained, it shouldn't even be so, if one commits a crime, anonymity can be of concern to people who aren't allowed into a project, contest, exchange and so on because of their location.