(Ich hab schon n'Javascript geschrieben, das etwas durcheinander gerät wenn ichs ändere, wär aber natürlich machbar).
JavaScript operiert auf dem DOM, nicht auf dem Quelltext. Selbst wenn du innerHTML und Co. verwendest, bekommst du nicht den ursprünglichen Code, sondern vom Browser serialisierten. Da werden also </li>-Tags höchstwahrscheinlich eingefügt. Für DOM-Scripting ist es also egal, wie dein Code aussieht. Der Browser parst ihn in das DOM und Serialisierungen davon sind immer vereinheitlicht.
Wenn du allerdings anderweitig rohen HTML-Code mit JavaScript verarbeitest, z.B. Ajax-Rückgaben: Dann sollte dein HTML-Code sehr konventionell sein, denn jeden beliebigen gültigen HTML-Code zu verarbeiten vermag dein Script wohl nicht. Mit konventionell meine ich noch strenger als HTML-Strict-valide. In meinem Artikel Strenge HTML-4-Validierung gehe ich auf weglassbare Tags ein und stelle eine DTD vor, welche die Tags erfordert.
Mathias