è ovvio che dal punto di vista sostanziale non cambia assolutamente nulla, chiamare l'id 'gino' o '34354' è la stessa cosa.
sbagliato. 34354 ti ci sta in una colonna smallint unsigned o mediumint, che come ricerca/indicizzazione/ordinamento/collegamento relazionale sara molto-molto piu' veloce rispetto ad una colonna char o varchar per memorizzare 'gino'. Puoi pensarla anche cosi: una smallint occupa 2 bytes, mentre una char(4) ne occupa appunto 4.
Naturalmente se hai 10 righe nel tuo db, tutto questo e' irrilevante..

Non ho capito chi e dove crea il disordine logico.