Well you can design firmware which works
For example I still have my first colour TV. It has a microprocessor inside which manages it. It never received a firmware update, simply because it was simple enough to never need one in over 25 years of duty.
I also recently got a VCR from 1984-ish. It contains 2 microcomputers and it never got any updates, despite having an external interface.
The point is to make your firmware as simple as possible, then you have a chance of making it bug-free, or at least without any security critical bugs. However if you choose to support obscure IP-features (like source routing) or artificially increase the complexity of a standard (like in HTTP/2) you wage a risk. There may be reasons to do so, but you have to weigh the advantages against the risk first. Blindly believing that the future lies in more complexity, not less, is what brought us here.