Es spricht nichts dagegen, CHAR oder VARCHAR als Primärschlüssel zu verwenden.
Sicherlich nimmt es in vielen Fällen etwas mehr Platz ein als ein INT, aber es gibt viele Fälle, in denen es die logischste Wahl ist und möglicherweise sogar die Anzahl der benötigten Spalten reduziert und die Effizienz verbessert, indem es die Notwendigkeit von a vermeidet separates ID-Feld.
Beispielsweise haben Ländercodes oder Abkürzungen von Staaten bereits standardisierte Zeichencodes, und dies wäre ein guter Grund, einen zeichenbasierten Primärschlüssel zu verwenden, anstatt für jeden zusätzlich eine willkürliche ganzzahlige ID zu erstellen.