Mozilla (and Opera for that matter before) showed that one needed much smaller team to maintain a full-featured web engine. Plus a lot of Chromium complexity comes from the desire to make such big team manageable. So they split tightly coupled code into separated components worked on by different groups resulting in a lot of glue interfaces and wrapper classes.