HTML itself allows SGML-style tag omission since HTML was originally an application of SGML. A simple example can be found at [1], and can also be seen in action in my talk slides linked from [2].
We're talking XML rather than HTML (and omitting certain closing tags isn't compliant HTML5 anyway).
In XML there's also the concept of using self-closing tags only for "empty tags". Meaning, <tagname val="123"/> isn't "correct" and <tagname>123</tagname> should be used instead; while s-expressions simplify this.
Sorry but your comment re XML is incorrect. I suggest you study the HTML and XML specs, especially if want to convince us of an alternate XML serialization.
[1] http://sgmljs.net/docs/html5.html#tag-omission-on-document-l...
[2] http://sgmljs.net/blog/blog1701.html