Weil Mobile-SoCs ein proprietärer Mistsumpf sind, wo jeder SoC eigene Treiber hat. Da Linux keine stabile Treiber-API hat muss für jedes Gerät eine bestimmte Kernelversion, für die es die Treiber gibt, speziell kompiliert werden. Somit kann Google schonmal nicht mehr hergehen und einfach den Kernel von Android updaten.
Dazu kommt noch das Android kein gutes Update-System gekriegt hat, wo Updates einzelne Systemdateien unabhängig voneinander austauschen können (so wie bei Windows-Update), sondern das System lässt sich nur als ganzes aktualisieren. Darüber kann Google dann keine Updates direkt verteilen, weil jedes Gerät ja einen eigenen Kernel braucht, den nur der Gerätehersteller hat.
Nicht zu vergessen dass die Gerätehersteller unwillig sind, die Geräte ohne ihren angeflanschten Dreck zu verkaufen. Samsung ist da Vorzeigekandidat.
Es gab also viele Ecken an denen man das Problem hätte anpacken können, z.B. Linux kriegt ne stabile Treiber-API, Android darf nur noch Stock ausgeliefert werden oder Android hätte ein besseres Update-System kriegen können. Google hat da finde ich zu wenig Initiative gezeigt, denen muss vollkommen klar gewesen sein, dass mit diesem System Smartphones zu Wegwerfware werden und die haben das einfach in Kauf genommen.