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.
They can't do that - not legally as far as I know. You entered in a contract to buy goods and services at say US $5,000. If you get a refund, the refund value should be $5,000-processing fee (if there is one) regardless if they choose to refund you in Bitcoin or US dollars. Entering into a contract to buy goods and services is not the same as buying shares or currency where the value of your holdings is prone to market swings.