А если такой код:
<strong>text1</strong> <em>text3</em>
здесь 3 текстовых узла и один из них содержит только пробельные символы, но удалять его не нужно.
Придется еще проверять наличие пробелов в конце предыдущего текстового узла и начале следующего, но тут тоже не все просто:
<strong>text1 </strong><input /> <em>text3</em>
здесь оба пробела нужны.
Лучше пересмотреть задачу и попробовать избавится от необходимости нормализовывать.