I think having more then one engine is important to keep everyone accountable and motivated. To me the idea of developing for the standard is merely idealism until either we have either one engine to rule them all or the engines come to the realization that the responsibility of consistently implementing the spec starts with them and not the developer.
In the case of having only one engine, obviously the standard suffers but in the case of multiple engines the developers suffer. Which is worse?
I feel like we as developers have done a good job to mitigate the suffering from having multi engine compatibility with frameworks to the point where it's still better to maintain the direction of multiple engines and code for the implementation rather then the spec simply for the sake of accountability.
At the same time it would be nice to fork everything off the best candidate and unify things but then we wouldn't have anything to compare it to in order to know it's STILL the best candidate.