The DOM is great. It's a pretty well designed API, and makes things easy. HTML/XHTML are just crappy ugly serializations of it. It'd be nice if there were some alternative serialization schemes supported by browsers more like JSON.
If you're manipulating the DOM with js, then you can't far wrong. You can't omit closing tags. You can't have invalid nesting. You can't typo closing tags. etc
to change a nodeName, you have to clone its children and replicate its attributes.
to delete on object,
object.parentNode.removeChild(object);
to insert after an element
object.parentNode.insertBefore(newObject, object.nextSibling);
and that only works by auto'magic' nonsense.
things like jquery would still be around if the browser all implemented everything nicely because the dom api is just terrible
Leaving the browser to tidy up after you is IMHO bad practice.