As you note, nearly all US-based credit cards charge a 3% foreign transaction fee. (It is *not* a fee from Visa or MasterCard. Visa and MasterCard typically charge the bank 0.8% or 1.0%. The bank can choose to pass all, none, or more than all of that fee through to you; most, including Citi, pass more than all.)
The way around it is to use a credit card that doesn't charge foreign transaction fees. Capital One is the only major national bank I'm aware of that doesn't charge foreign transaction fees, as you mention. My credit union only passes along the 0.8% fee from Visa on a credit union credit card; I think that's common for credit union-issued credit cards. (Perhaps small banks too; I don't know.)
The extra 2.2 cents isn't worth the AAdvantage mile for me for foreign transactions, particularly because I do get (limited) rewards on my credit union credit card. Check the exchange rates, though....