If I see 24.79 spent and later 24.79 credited. It doesn't matter what you hide in between, I can still correlate them. Even if the user splits the amounts, i.e. 24.79 spent then 13.38 and 11.41 get credited to separate accounts, pattern analysis may still identify them.
So obscuring the process in the middle with a mixer that obscures IP address and/or links between spends and credits doesn't necessarily provide anonymity.
The acct which receives payment is never revealed in the clear. Neither are the accts that send the payments.
The initial condition where nobody has any funds is tricky and still a bit unsolved, but at worst a bunch of people send to the mixer the same amount and it funds each persons shadow acct.
From then on, payments are encrypted, the destination is not correlated with the normal acct of the recipient, etc.
This is more than normal mixing with the indirections on both sending and receiving
Edit: just to make it that much harder to correlate, payments can be broken up into standard denominations and stretched out over several sessions, this would be useful for larger payments that would have a hard time blending. Maybe a globally determined max that can be sent based on the sessions exact transactions