Drittens und eher am wichtigsten, die Crawler mögen Code Fehler überhaupt nicht. Das kann sich auf Deine Suchmaschinenplazierung Auswirken.
Sorry, aber das ist Quatsch. Wenn dem so wäre, dann würden die Suchergebnisseiten aber gaaaanz anders aussehen. 
Natürlich kann fehlerhafter Code eine Indexierung verhindern, wird aber in der Regel nicht passieren. Auf eine Position in den Ergebnissen wird es eher weniger Einfluss haben. Man kann aber natürlich im Gegenteil mit sinnvollen Auszeichnungen (strong, hx usw.) seine Position steigern. 
Deine anderen 2 Argumente sind aber meiner Meinung nach stichhaltiger. 
Hisky:
Zitat von Hisky
class="off" onmouseover=this.className="on"; onmouseout=this.className="off"
Spalte:395Fehler:Anführungsstriche fehlen: Attribute müssen in Anführungsstriche eingeschlossen sein.Fehlerstelle:n</a></li><li class="off" onmouseover=this.className="on"; onmouseout=this.c
Die XHTML-Attributwerte müssen in Anführungszeichen stehen, was in dem obigen Code bei den JS-Eventattributen nicht der Fall ist. Ich hab mal ein paar hervorgehoben.
Die korrekte Struktur einer Liste ist z.B. bei SelfHTML sehr gut erklärt.