As I said, I personally never experienced such a scenario.
But even though it looks like a problem (or even a malicious intent) on the merchant’s side in their system, I don’t know how to prevent it. If I was told that I’ll be charged in certain currency, then I expect to be charged in exactly this particular one, otherwise I call it a fraud.
Perhaps, I would have tried to report this to the payment system? Or give them 1 star with the description in the comment
Actually, I had one more or less similar case with one Marriott hotel in Hong-Kong: I asked them to charge me in HKD, they said that no problem, but at the moment the transaction will be in GBP, and at the time of actual payment processing it will be charged in HKD. And it was exactly like they said: for the first couple of days Revolut was showing me pending transaction in GBP, and the final processing happened in HKD (and the charged amount was exactly the one from the paper invoice, which was also the amount I saw while booking this stay).