Wondering why ARM based devices like Raspberry Pi, Android phones, Routers etc. are not shipped with latest Linux kernel ? Is it simply due to lack of proprietary device driver support ? Like lack of opensource drivers for GPU,DSP etc ? Or they have some limitation to run latest kernel version ?
The Raspberry Pi does not really ship with any kernel at all; it does not include software, although you can buy it from some third party retailers with a pre-formatted SD card (and you can buy such a card separately). There are a number of binary GNU/Linux distributions specifically for the A/B/+ pi (since the Pi 2 is ARMv7, it does not require this and generic ARM distros can be used); they are mostly based on existing mainstream distributions and use the same versions of software except for the kernel, which is not vanilla and does include some proprietary bits. The latest version of that is 4.1, which is the same as the latest vanilla kernel at the time of this writing.
However, the pi kernel, like the official kernel, is independent of any distro and pi-centric distros do not necessarily use the latest available kernel just like normal distros do not necessarily use the latest available kernel.
With regard to Android, those kernels presumably contain even more proprietary stuff, and the base kernel itself is still not, I think, the same as the vanilla kernel -- I do not know what version the latest one is, but it would not be surprising if it is a little bit behind since there is more to double check in this case than with with the pi.
Actual Android manufacturers I'm familiar with do not update the kernel all that often, and they stop after a certain point because they have not promised to keep your device updateable into infinity. The reason they do not update it very often in the first place is presumably because "If it ain't broke, don't fix it" -- it is riskier to do this than to just leave it as it is.
This is a sane attitude; what would be totally crazy would be for consumer device manufacturers to try and keep up with kernel.org. That is not the point. Linux is open source and its development is public; you can access the same channels of communication and git repos as the kernel developers. It is not this way because they think everyone should upgrade as soon as they release something. It is that way because the development is public and open source. I can promise you that proprietary OS's are not kept updated to the absolute latest kernel from the outfit that produces them -- they are probably months and years behind -- but because you are not privy to the state of things there, you will not notice this.
In relation to that, it is also worth noting that Linux kernel development is independent of any distro. They are not working together, strictly speaking, so the purpose of a new kernel is not specifically to be deployed on Android or ARM or Debian. Those are independent entities that make their own decisions about what and what not to use. There is no reason for them to wake up in the morning and go, "Well, Mr. Torvalds released 4.2 -- better get on that".
One concrete illustration of the advantage of this relationship is that if kernel 4.2 turns out to have some bugs in it, distro X will not immediately suffer from those unless it blindly updates its kernel as soon as it is released. Instead, distro X can wait until 4.2 is reasonably field tested; if there are problems, it can be skipped and they can wait for the next one.
It is also probably not desirable for most end users to have their operating system kernel updated weekly. Distros don't release a 3.17.1, then a 3.17.2, then a 3.17.3. They may release a 3.17.2 then 3.18.5. The difference between these versions may not in fact be all that meaningful to most users -- so in addition to being irritating, it would be pointless.
The same logic applies to routers as to Android devices.