The problem is address J is now tainted and could potentially link some things together if used for future transactions with F, G, and H (if used with all 3 simultaneously, it would 100% link the original A to B tx). Additionally, it has the further weakness of not being very useful for future Darksend+'s, as it won't denominate well.
The potential "fix" that's on my mind (maybe just a workaround) is to store up these "tainted", mostly useless addresses until you have them totaling more than 1 (or 5, or whatever), at which point they could be sent to a special "redenominating" pool (and maybe you don't even need a pool, I haven't taken the time to think through all the implications of just doing it like a normal Darksend+) for recycling back to standard sized change addresses. You would still end up with one sub-1 address every time, but that's not too big of deal in my view.
Any thoughts?
Does this become a non-issue if Darksend is mandatory? If not then yes, some in-wallet automagic might need to happen.
I don't really know. With Darksend+ going around all over the place, the blockchain will be really foggy, particularly to humans. But a computer might be able to figure some of it out, maybe just in specific situations dependent on size of tx.
Whether Darksend+ should be mandatory is another topic entirely. I'm not presently sure you could even make it so. Nodes (or the block finder) would need to reject transactions not originating from the elected masternode(s) with an exception for the block reward I guess.