Pay by card or withdraw money from an ATM to pay less fees?


No, that should not show up as separate fee.


Ad fees by ATM provider: I have seen some ATMs from Erste group to demand a fee. They are honest, i.e., they explicitly state the fee and allow you to reject the transaction. Namely, they were banks of Erste group in Czech Republic (Česká spořitelna) and Slovakia (Slovenská sporiteľňa). Other banks of the Erste group might do the same, but I haven’t tried them.

You can also hit a hidden fee through DCC, either through ATM withdrawal (Euronet in well known for that) or through card payments at merchant (Poland is well known for that). I have seen even about 10 % mark up. The solution should be simple: Whenever you are asked to decide between local currency or your currency (or GBP in case of revolut), use the local currency. This lets Revolut to convert the currency, which is usually much cheaper. Note that some dialogs are designed to look like you decline the tranasaction by declining the conversion (e.g. pay in GBP = press OK, pay in PLN = press cancel), don’t get confused.