I have been developing embedded systems for over 20 years and I have never seen the need to upgrade the OS. Never! The beauty of an embedded system is that the user does not see the OS and really does not (or should not) care what it is. You are going through a development cycle and if you do your job well, you will be fixing most problems during the development cycle before the first release and immediately after. Over the years, you will be in a maintenance mode and you will only be fixing some functionality problems.
You will NEVER want to destabilize your product and have significant retesting by upgrading the Kernel or OS. Why? What new features in the OS matter to your customers? After all the OS is not your product and the customer should not care. Keep in mind that the OS vendors will be trying to get you to distribute upgrades, but resist the temptation. You will be spending money for no reason.
When you need to develop phase II of the product, its a different ball-game. Then you can use a new version of the OS, or a different OS. The point is, you are not "upgrading" your kernel, you are developing an evolution of your product on a new OS. Different mindset.