I really think Bitcoin is anonymous already. I know it's not 100% but if someone wants to mix Bitcoin can't they just send x to address A and withdraw x from address B when they need it? Then someone else who wants to remain anonymous sends y to address B and withdraws y from address A. Or some extension of this system.
Not even close. Even clever ways of "mixing" like CoinJoin or SharedCoin have been shown to be fundamentally broken.