Nein, du ersetzt ein Element mit einem anderen. D.h. das li Element ist weg.
ursprünglich wollte er Texte der li-Elemente tauschen ...
document.getElementsByTagName("li")[3].replaceChild(text2, getElementsByTagName("li")[3].firstChild);
^^^^^^^^
document.getElementsByTagName("li")[3].replaceChild(text2, document.getElementsByTagName("li")[3].firstChild);
jetzt geht es natürlich ganz ins Wilde, wenn ul und li gemixt werden.
document.getElementsByTagName("ul")[2].replaceChild(text2, getElementsByTagName("li")[3].firstChild);
Fraglich ist, ob jedes li-Element auch einen Text hat, ob li-firstChild existiert ....
Gruß planB