Android devices require drivers. Kernel changes result in changed in the way drivers interact with the OS. This requires work from the driver providers to keep the devices functioning.
It's not as easy as simply "updating" to the latest version. This is evidenced by tablets where in there are no carriers to affect the issue.
Anyone who has spent serious time on XDA can tell you that each time an update for Android comes out, it takes noteworthy time to fix the previous versions of code up to work with the new android release.
The issue above is amplified by carriers when it comes to phones. The above alongside carriers actively resisting patches means that phone users get well ****ed in the end. The problem is the above is much more nuanced than I believe a lot of people in this thread understand.
I have 4.3.3 running on my Acer Iconia a500. It's a 4 year old or so tablet. Still works nicely, but there are a couple of extremely dedicated devs who do nothing but fix driver issues and software issues whenever a new version of Android releases. Imagine this process for 100 different devices, and you can see why a lot of companies don't contribute much time to it.
Regarding GDR2 on WP8, when GDR3 releases, you'll definitely get pushed to it. Carriers can delay patches, but there is a requirement that they publish them eventually. On top of this, you can also flash the new rom directly onto the device. I for instance have a Telstra Lumia 920 that I have a debranded ROM for just sitting here waiting to flash. The process works nicely and is low risk.
Lastly, I would recommend reading this article: http://arstechnica.c...ng-version-4-3/
Google have been working on it for a while, it'll get better over time.