Man kann die Sache auch etwas allgemeiner fassen (um mal zur eigentlichen Frage zurückzukehren):
Id's sind dazu da, Elemente sozusagen voneinander zu unterscheiden, indem man jedes mit einer id definiert. Man teilt also die Seite z.B. in verschieden definierte Bereiche ein. Darum sollte man auch eine id nicht mehrfach an verschiedene Elemente vergeben.
Musterbeispiel: Die eine id bestimmt das Aussehen der Links in der Navigation, die andere die derer im Text.
Classes geben irgendeinem Element die Eigenschaften, die "oben" oder extern in der CSS-Datei für dieses class-Teil definiert sind. Man ändert damit Elemente querbeet wie man gerade lustig ist.
Musterbeispiel: Man hat eine Tabelle mit vielen Zeilen und will in unregelmäßiger Reihenfolge Tabellenzeilen grasgrün färben und ihnen eine andere Schriftart zuweisen (warum auch immer) und weist dann eben denen, die grasgrün sein sollen das entsprechende class-Ding zu.
Dafür sind die beiden gedacht.