This is a very old issue I've been fighting against for years. For some time it seems it was solved in VM.
I changed from using default VM system to AwoCoupon starter for now thinking this didnt happen.
Basicly the gift coupon gets used always after creating the order even on pending or cancelled orders.
This causes shop owners to have to manually create coupons or add points to the users that lost a coupon that they never used.
This was solved in VM for some time as mentioned and there is an option there to "delete coupons on order status:"
but seems to get ignored.
Is this a VM bug or does it work in AWO Pro?
As you know we use AwoRewards and AwoCoupon starter.
Regards