Penso che il tuo problema non è che ci sono diversi motori javascript (anche se ci sono). Il problema che stai descrivendo (che hai bisogno di un codice diverso per ottenere la stessa funzionalità) è probabilmente dovuto alla comprensione da parte di vari browser dell'HTML e in particolare alla loro implementazione del DOM. Il lavoro su HTML5 si spera risolve un certo numero di aree di interesse (anche se non tutte). Viene preso direttamente dalle specifiche di bozza HTML5
1.5 Design notes
This section is non-normative.
It must be admitted that many aspects of HTML appear at first glance to be nonsensical and inconsistent.
HTML, its supporting DOM APIs, as well as many of its supporting technologies, have been developed over a period of several decades by a wide array of people with different priorities who, in many cases, did not know of each other's existence.
Features have thus arisen from many sources, and have not always been designed in especially consistent ways. Furthermore, because of the unique characteristics of the Web, implementation bugs have often become de-facto, and now de-jure, standards, as content is often unintentionally written in ways that rely on them before they can be fixed.
Penso che esprima il problema abbastanza bene.