The reasons don't really seem to address why Android has the issues it has -- device manufacturers don't upstream their code changes to the mainline Linux kernel, Linux doesn't have the same level of abstraction around hardware as eg Windows does, and the state of ARM SoCs isn't like the x86 platform where there's a lot of standards you can follow, everybody just ships bespoke code to boot their SoC and only their SoC. I don't see how shipping a "real" GNU/Linux userland addresses that.