Looking at the offers from Canadian banks it seems that the choice is quite poor for people who travel a lot. Every bank seems to charge 2.5% on top of dubious exchange rates for every transaction in a foreign currency, plus there are extra fees for foreign ATMs.
I thought I could get around the system by simply wiring CAD to Revolut, but here again every bank charges at least 30 CAD for transfers to foreign countries, so I would again overpay a lot just to use my own money. I guess I could just wire 3,000+ CAD at a time to Revolut, lowering the transaction fee to a reasonable 1%, but I'd rather not keep so much money in that account.
Are there any banks that don't have excessive fees for foreign currencies?