The IP concern can be easily avoided by using a VPN service right? What if some honest guy who has bought Bitcoins on an exchange sent some to his friend who is a bad guy. So the good guy has exposed his ID to the authorities but the bad guy got clean coins in his wallet. How can you find out the identity of the bad guy if he continues to deal with digital cash and doesn't want to withdraw into the physical world?
Because the "good" guy can be identified... When buying coins on an exchange: you need to verify your ID, on other websites you need a verified paypal or credit card.
Only localbitcoins and bitcoin ATM's CAN be reasonably anonymous, altough the "good" guy might become "victim" of a sting operation.
When the "good" guy sends coins to his "bad" friend, the transaction is logged on the blockchain. When the "bad" guy buys something illegal (for example: drugs), the transaction is logged on the blockchain.
If the FBI suspects the dealers wallet to be a wallet used by a criminal, they can trace the coins back to the "bad" guy, and from the "bad" guy's wallet, they can trace them back to the "good" guy... But the "good" guy can be identified when he bought the coins.
So, if the "good" guy buys coins on a regular basis, and always sends them to the "bad" guy who always buys illegal stuff, it might happen that the cops knock on the "good" guys door and interrogate him untill he reveals the identity of the "bad" guy.
Bitcoin is pseudo-anonymous. It can be more or less completely anonymous, but only if you know what you're doing... If you're just buying coins and using them, you CAN be traced by somebody who has a lot of time and money (and has access to court orders)