Yes. This is complicated. There are two sides:
1 – How payments are processed in credit card networks.
2 – How a payment is debited from an account, in this case Revolut.
1 – Mastercard and Visa can handle a vast amount of currencies worldwide. When a payment is presented to the bank of the card holder, the bank does only see the currency in which it is presented. This might be the local currency of the merchant. Or the local currency of the card holder (DCC). But the bank does not see details about the DCC that might have happened before. Banks can now use rates provided by Mastercard / Visa, or they can use their own rates. Revolut uses its own rates, and also connects the card to a multi currency account. But both things are separate.
Actively blocking a payment in a certain currency would mean that while verifying a payment, the bank of the card holder would decline a payment in a currency that is blocked by the user, independently from available funds. I can see that this is something Mastercard would not agree with. I don’t know.
2 –When a payment hits a Revolut account, different things can happen: if there are funds available in the currency of the payment, it will be deducted from this balance. Next in line is the base currency (conversion by Revolut). Then other available currencies (conversion by Revolut).
Let’s say you’re paying in EUR and your EUR balance is too low, it will be deducted from the CHF balance with conversion.
Let’s say you’re paying in EUR and your EUR balance is sufficient but blocked, it will be deducted from the CHF balance with conversion.
So blocking the EUR balance does not decline EUR payments. It only prevents funds from being taken from this balance. For now, a customer’s base currency can’t be blocked (maybe regulatory reasons, I don’t know). But even if it could be blocked, CHF payments - in your case - would still be possible. They would just be deducted from the next balance in row with conversion.
There is of course a simple way to make sure a EUR payment will be deducted from the EUR balance: holding sufficient funds in EUR.
It is more difficult and incovnenient to “skip” the base currency when making payments in currencies one does not hold: if the base currency wallet holds sufficient funds for a given payment, it will be deducted from this balance. So in addition of blocking currencies, Revolut could maybe introduce a configurable order.
I can see this being a UX nightmare. If blocking and changing oder is possible, it could result in declined payments when customers haven’t really figured out how a card payment is processed. And it kind of ridicules the simplicity of a card that changes into whatever currency one needs on the fly.