They don't keep $10 off of the customer. If you have already spent a coupon, there is no way to deactivate it. It is already gone. In effect the customer has spent $10 they are not entitled to once they make the return. They borrowed the $10, and now Kohls wants it back. The customer never loses money out of pocket. They only take back the Kohls Cash money the customer now has no right to.
Kohls gets their "$10" back along with their merchandise. Anyway you slice that, Kohls makes money on all those transactions, while the customer keeps nothing from them, and has $10 less in their pocket. It may be their coupon policy but they end up $10 actual cash richer because of it.
ETA, I get their policy, I get why its in place. It still doesn't make it fair to the customer when at the end of the day Kohls has $10 in cash because you the customer used an earned discount but decided you didn't want to keep your purchases that you used that discount on.
ETA again-- this applies to when you make a return on the original purchase that you earn KC on and the one you used the KC on. Returning, null and voids those transactions therefore the customer should get back the exact amount of cash they spent, since it is like neither of those transactions happened in the first place. (I hope that explains where I'm coming from).