Plus précisément, on met un ID pour identifier (comme son nom l'indique) un élément précis dans une page (et donc unique). C'était principalement utile au Javascript initialement, quand il était beaucoup plus compliqué de manipuler les classes.
Maintenant, on recommande l'utilisation des classes uniquement pour le CSS (pour une question de poids des déclarations, qui doivent être le plus légères possibles pour permettre une bonne modularité et maintenabilité), et le Javascript ne souffre plus de limitations désormais, avec querySelector()/querySelectorAll() et des classes comme classList.
Donc tu peux utiliser des Id de manière purement "informative" ou bien comme des ancres, mais ça reste leur seule vraie utilité aujourd'hui.