None of the techniques used by the block chain data miners use are perfect.
There is a discussion regarding these heuristics here:
https://bitcointalk.org/index.php?topic=5299344.0In terms of your point about sending the full amount of coins, this is another heuristic which is easy to trick. Whenever possible I'll pick UTXOs which are close enough to the required amount that I don't mind losing a few thousand sats as an additional fee and leave no change. Sometimes I'll buy a few extra products, a longer subscription, increase the value of a gift card, etc. to get the value of my order closer to the full amount of a UTXO I have to spend, again leaving no change. If I am going to create a significant amount of change, then I'll usually just redirect it straight to ChipMixer rather than a change address I own.