Desempenho não é realmente o principal problema, pelo menos não para mim. A questão é mais sobre chaves substitutas versus chaves naturais.
Os códigos de país não são estáticos. Eles podem e mudam. Os países mudam de nome (por exemplo, Etiópia para Eritreia). Eles surgem (por exemplo, a dissolução da Iugoslávia ou da União Soviética) e deixam de existir (por exemplo, Alemanha Ocidental e Oriental). Quando isso acontece, o código padrão ISO muda.
Mais em Mudanças de nome desde 1990:países, cidades e mais
As chaves substitutas tendem a ser melhores porque quando esses eventos acontecem, as chaves não mudam, apenas as colunas na tabela de referência mudam.
Por esse motivo, eu estaria mais inclinado a criar tabelas de países e moedas com uma chave primária int.
Dito isto, os campos-chave varchar usarão mais espaço e terão certas desvantagens de desempenho que provavelmente não serão um problema, a menos que você esteja realizando um grande número de consultas.
Para completar, você pode consultar Erros de desenvolvimento de banco de dados cometidos por AppDevelopers .