La mia era solo una ipotesi basata su considerazioni logiche e molti anni d'esperienza nel settore informatico riguardante la progettazione di sistemi informativi.
Non ho mai quindi pensato d'indurre chicchessìa a credere che la mia fosse qualcosa di più che un opinione.

Ciò che mi sembra ravvisare dal comportamento di quella "document. write" è quanto segue.

1) L'interprete Js esegue un controllo logico sul contenuto della stringa tra le parentesi.

2) Se trova la sequenza "</Script>" non chiama l'interprete HTML
altrimenti chiama l'interprete HTML.

Se l'interprete HTML viene chiamato questo:

1) Esamina il contenuto della stringa passata dall'interprete JS

2) Se trova la sequenza "<script" chiama l'interprete JS
altrimenti cerca di eseguire i comandi interpretandoli come HTML.

L'interprete Js chiamato:

1) Esegue i comandi javascript
2) Ricede il controllo all'interprete HTML
3) L'interprete HTML continua ad esaminare la stringa ed eventualmente ad eseguire i comandi HTML contenuti (reitera i punti 1 e 2)

4) L'interprete HTML finisce di elaborare la stringa e ricede il controllo all'interprete Js.

5) L'interprete Js continua a elaborare le altre istruzioni eventualmente presenti e successive alla "document.write" fino ad incontrare il tag </script>.

Per cui, credo che sia l'interprete JS che in presenza della sequenza di caratteri "</script>" inibisce la chiamata all'interprete HTML.

Comunque, rinnovo i miei ringraziamenti per una soluzione che snellirà notevolmente il prodotto finale.
Chissà, magari i progettisti dell'interprete JS stanno già lavorando per introdurre un istruzione specifica per le chiamate dinamiche.

Solo una curiosità.
Perchè dici che su "lato server" non avrei avuto alcuna difficoltà?

Ciao.