I think regardless of what they refund you in - Bitcoin or USD it is OK as long as the value of the refund is the same as what you originally paid (minus a processing fee if they charge one).
And that's the problem. They choose the option where the value is less, regardless of the exchange rate.
Theres a clear different between pre-orders up thru april that took BTC and said BTC was forwarded BA, and further orders when we switched to Bitpay and Shopify and BTC was then cashed out to USD and sent to BA. Pretty simple.
The arrangement between you and your supplier is irrelevant to the contract between you and your customers. If someone ordered $5,000 worth of merchandise and paid you, you have to refund them the same amount in whatever currency you choose to refund in. Anything else means your "refund" is not really a refund at all.