Network stacks and web browsers are easier to improve incrementally than more fundamental parts of the OS.
Whereas, a fast, standardized browser like Firefox takes a huge company to support it. The complexity is just huge. Plus, the standards and web experience are always moving along. Can't wait for more people to scratch an itch if you want to stay competitive.
No. You just use gcc. Like everyone else.
But implementing `drawButton()`, `blitToScreen()` and similar is in no way similar to implementing a C++ compiler, as you implied.
An example of a port is here, in this directory: https://trac.webkit.org/browser/trunk/Source/WebCore/platfor...