Det är inget fel med att använda en CHAR eller VARCHAR som primärnyckel.
Visst kommer det att ta upp lite mer utrymme än en INT i många fall, men det finns många fall där det är det mest logiska valet och kan till och med minska antalet kolumner du behöver, förbättra effektiviteten, genom att undvika behovet av att ha en separat ID-fält.
Till exempel har landskoder eller delstatsförkortningar redan standardiserade teckenkoder och detta skulle vara en bra anledning att använda en teckenbaserad primärnyckel istället för att skapa ett godtyckligt heltals-ID för varje dessutom.