Canonical pushes open source applications in their OS, Google does not.
Chrome OS however, does the same thing, except it leverages more of the GNU stack and also utilises more FOSS components such as PulseAudio, and while it does provide a FOSS platform for development (Chromium OS), Chrome in Chrome OS is closed source.
2nd, Google has a lot more money to throw around than Canonical. Much more.
To say that Canonical isn't doing its own GSoC project so they should be shamed is like saying Uganda isn't eradicating poverty in all of Africa. Any person with half a brain can see that.
Canonical does however put most of its own in house projects under copyleft open source licenses such as the LGPL. They also have fewer closed source applications out there, while Google has the aforementioned Chrome, Chrome OS and Google Apps components in Android.
3rd, I don't deny this, however Canonical was one of the first free (gratis) distributions to greatly increase Linux's scope in the desktop market. Before that, many of the solutions were either for advanced users (Debian and Slackware) or payware (Red Hat and SuSE). Android has pushed the Linux kernel into more devices, but at the same time it has also transparently made those people dependant on those closed source Google Apps and frameworks such as the Play Store.
4th, That's because Mark Shuttleworth is a marketing man. Those people's business are to sell a product to the consumer who usually is interested in only buzzwords. Most people in the Linux community probably couldn't name the Red Hat CEO off the top of their heads but they know who Mark is because of that marketing technique. It may not appeal to you, but it is an effective way to get a message across.
As for your comments on GCC and the kernel, if the tool already does exactly what you want, is there any reason to change it?
As for the other points that I have made, you haven't really addressed them besides the age old retort of 'it was going to take time anyway' even though if Google put effort into that process they could have pushed all of those patches upstream a lot sooner.
And back onto the crux of the matter, what you suggest about developers rejecting Mir patches upstream, it goes against the Linux philosophy and actually discourages choice in the ecosystem. What you are suggesting is that people should be FORCED to use either X11 or Wayland, and while you didn't say those words, it's what you are heavily alluding to.
Open Source is about the freedom of choice, it always has and always will be.
What you are suggesting is a limitation of choice, something that should be discouraged for the sake of the open source community.