Correct, it all comes back to the dead change issue. In theory, by over paying, the initial tx has no change to come back to be "dead". Then the second tx (new block) that contains the change goes to a fresh address (which from a block chain glance could be anyone) that belongs to the initial sender. This should remove all linkages. The problem I see is passing in the original tx the newly generated change address to the receiver in a way that doesn't allow any linkages. If done by masternodes, then a rogue masternode can link.
So you agree that the receiver cannot use the received funds to make change? A and B funds cannot be used to make C and D change?
So my original point was that the receiver could possibly NOT have enough change in their possession to make this method work.