But that will be way too much effort for every kind of project, so what can really happen is some large players write engines and define interfaces for them, and we can all use them for our sites.
But different engines rendering the same data differently is probably going to be confusing (what if I want to swap them to compare performance?), so we should also standardize on some rules for how they do that. Maybe define some kind of document model and styling language?
Also, downloading all these engines on every page load might be too wasteful, so we can pick a couple of the dominant ones and bundle them into the browser itself. That way sites just have to send over structured content and the browser can load them all without a problem.
If we can ever get to this it will be a great web experience!