Lets break this down to improve clarity:
A wants to send 2 coins to E
B wants to send 3 coins to F
A sends the masternode 10 coins, and address C (C is the change address)
B sends the masternode 10 coins, and address D (D is the change address)
The masternode will mix the coins and output:
2 coins to E
8 coins to C
3 coins to F
7 coins to D
It will be impossible to tell whether A sent coins to E&C or F&D. It is possible however to say that whoever holds address C sent 2 coins to E. Now if user A wants to buy something on amazon with DRK, and uses the coins at address C, amazon (or anyone who has compromised amazon's servers) can determine with 100% certainty that user A sent 2 coins to E in the earlier darksend transaction. If the coins are darksent to amazon then there wouldn't be a problem I guess. Really the coins at address C should be automatically washed after the transaction to maintain anonymity in case the user non-darksends them later on.
Still not seeing any provable link between amount of change received by C and initial transaction between A and E. At least not without full access to the wallet that holds A and C, at which point all else is moot. Must be going blonde...
2+8=10 This proves that whoever holds coins at C darksent 2 coins to E.
No, 2+8=10 proves 2+8=10. Doesn't prove anything else at all.
Please describe the flaw in my logic
C and E are linked on the block explorer because 8+2=10, one is the change address one is the receiving address. If C lightsends DRK to any vendor compromised by law enforcement, they will know that either:
C recieved 8 coins from whoever holds change address E
or
C sent E 2 coins
1. C did not receive 8 coins from E
2. C did not send E 2 coins.
3. Nothing links back to A anyway, as the muxing is off-chain and no record is kept of it.