Per i campi numerici INTERI il formato e' fisso e prestabilito, quindi per:
codice:
TINYINT   1 byte
SMALLINT  2 bye
MEDIUMINT 3 byte
INT       4 byte
BIGINT    8 byte
mentre per i campi con decimali la capacita' max e dinamica.

Quindi scrivere INT(5) non significa limitare il campo a 5 cifre, ma semplicemente a 5 cifre visualizzate il che nulla toglie che se la numerazione prosegue oltre le 5 cifre anche la visualizzazione si incrementa fino alla max capacita' del formato del campo.

In pratica poi serve solo (non ho trovato altro) a limitare il campo di riempimento se viene impostato UNSIGNED ZEROFILL.