Existuje nějaký zásadní rozdíl mezi innerHTML a použitím createTextNode k vyplnění rozsahu?

Samozřejmě. createTextNode unikne všem řetězcům a zobrazí je tak, jak jsou, zatímco innerHTML mohl převést řetězce podobné html do DOM. Pokud si to nepřejete (pokud si nejste jisti, že text neobsahuje žádné neuvozené značky, např. při přímém přiřazování literálu), můžete použít textContent (nebo innerText pro IE).

Přesto bych doporučil createTextNode , protože všechny prohlížeče to podporují stejně bez jakýchkoliv výstředností.