Replacing /usr/bin/firefox doesn’t fix anything if you don’t restart Firefox itself.
On my box updating firefox and then restarting it won’t even launch the new version because NixOS knows I’m logged in and won’t just change things in my environment. But unless there’s a kernel update yes nixos rebuild switch
followed by logging out and logging in is equivalent to rebooting as it will automatically shut down and restart all system services, I think even systemd itself. Modulo some wibbles around kernel modules but those fall under kernel updates in my book.
Contrast Ubuntu, which really likes to prompt your for reboots. The difference between a distro primarily for desktop use and one that can also do desktop because also devops want a desktop. Hey I could spin up 1000 cloud instances of my desktop with a couple of keystrokes isn’t that impressively useless :)
ROMs back then got erased by UV light, EPROM. EEPROMs are a bit newer (though still ancient) and can be erased electronically, nowadays it’s a very sane idea to just throw flash storage at the problem. I think you can get modern replacement for pretty much any ancient form factor.
The way those things are used are basically big logic tables: Instead of using a bunch of logic gates, you store the output that’s expected given a certain input. Completely ancient technique, the limiting factor is storage space and sensibility – storing all addition results of two 32 bit numbers uses a lot more transistors than a 32-bit adder, but if what you want to put in there isn’t a thing that can be implemented few standard TTL components throwing storage at the problem makes sense even if you never plan to reprogram it because burning a custom set of transistors onto silicon is expensive.