This issue will also hit many mobile/embedded devices in the future where the kernel has to be flashed separately from the main installed system. (Debian does provide a flash-kernel workflow for this purpose.) The general solution is to use a separate bootloader (even Linux itself can be used as a bootloader via kexec), though this can involve a bit of wasted space.