There is an implied "put" option a swap taker has. The Swap Taker can take at a specific rate for a specified period of time. Let's say BTC 0.0055% per day for 30 days. Let's say that someone posts 0.0050% for 30 days, then the Swap Taker can take the new swap and cancel the original swap.
I do not have a problem with allowing the person to cancel, especially if they are cancelling a loosing trade. Since the swap provider does not have a similar cancellation ability, I think there should be a cancellation fee for the unused remaining time. That way, the swap taker will be more careful about how many days they take.
This would only discourage traders. We don't need something like that!
The only possible solution would be that if you take a loan for a trade, you can only close that loan if you ALSO close the trade. But that wouldn't be liked by traders too