Whirlpool change should ABSOLUTELY NOT BE SPENT with other change because it will link both payments that created those change outputs together.
Unless the user approves linking the outputs together. Sure, generally speaking it is a bad practice, because you reveal common ownership, but if you mix regularly and receive coins from a specific source, then consolidating toxic change with other toxic change might be acceptable by the user.
You don't seem to understand, This user already Whirlpooled his coins and he was traced anyways
The user chose to consolidate a dozen private coins into one. I agree it was a very bad practice, but it is not Whirlpool's fault.
It's not a software problem: Can you explain how to fix this "software problem" of an address being reused on both sides of a coinjoin?
Yes, do not allow the coordinator to accept creating outputs with the same addresses as the inputs.
Alice registers an input from bc1qalice
Bob registers an input from bc1qbob
Alice registers an output to bc1qanonalice
Bob registers an output to bc1qalice
Why would Bob pay another input of the coinjoin?
WabiSabi does not share Whirlpool's problem of revealing input consolidation in payments because you can send payments directly to its destination in the coinjoin itself.
WabiSabi coinjoins literally have identifiable input and output merges, which I agree that they happen on multiple coinjoins that obscure the ownership, but reveal quite a lot of information. See
kycp.org/#about on input / output collaborations and merges.