Javascript: reemplazo de fragmentos en una cadena

Cuando se quiere cambiar caracteres o fragmentos de una cadena se recurre al método replace:

cadenaInicial = 'Texto de la cadena inicial';
cadenaResultante = cadenaInicial.replace('inicial','resultante');
// De forma que obtenemos "Texto de la cadena resultante"

Pero esto tiene el inconveniente de reemplazar solo la primera "inicial" que aparezca:

cadenaInicial = 'Texto inicial de la cadena inicial';
cadenaResultante = cadenaInicial.replace('inicial','resultante');
// De forma que obtenemos "Texto resultante de la cadena inicial"

Esto puede resultar inconveniente.

Pero hay solución, utilizando los métodos split y join:

cadenaInicial = 'Texto inicial de la cadena inicial';
cadenaResultante = cadenaInicial.split('inicial').join('resultante');
// De forma que obtenemos "Texto inicial de la cadena inicial"

Lo que se ha hecho es partir la cadena por el fragmento "inicial" y volver a unirlas, metiendo entre cada parte el fragmento "resultante".