I am really surprised that firmware images are not just .tar.gz files renamed to .bin :/. That's how I would have implemented a distribution of new firmware.
Embedded device will be hard coded to look at a fixed point and start booting from there, there’s no UEFI. How will you ensure boot-loaders get unpacked precisely where they need to be?
And that doesn’t even touch the idea of having a router understand a file system before any firmware code is loaded.
Routers really are quite different from PCs.