well, handheld devices are highly integrated, meaning the kernel and it's modules have to match the used hardware very closely. so it's much more difficult to upgrade a kernel on those. and yes, android is not a real linux, most of the code there is run in a java VM, called "darvik". maemo on the other hand provides most of the "real" linux GNU components, like gnu libc, gnu make, x.org and so on.