Покажите мне сайт, на котором документ отдаётся с заголовком application/xml+xhtml.
Если заголовок text/html, это значит, что ваши муки с синтаксисом XML абсолютно напрасны.
Это не экранирование, а entities
&
Я могу написать
&
или
&
это тоже entities.
Ошибки парсинга не случится ни при &, на при <, ни при >, но лучше таки писать текст с entites вместо & < > " ' просто потому, что он может использоваться не только на сайте, но и там, где есть XML.
Скрипт, лажающий с закрытием тэгов при вставке строк с помощью innerHTML — это проблема серьёзная, и XML тут не причём. Представьте, что ссылку такой скрипт не закроет. Поэтому генерацию строкового контента с последующим скармливанием парсеру лучше не стоит делать. Для безошибочной вставки есть DOM-методы. Пусть они частенько более медленные, но надёжные.