Only some of the OS was held on ROM, this did mean however that (e.g.) you always had a GUI, even from the "Early Startup Menu" (where you could choose another boot device etc.), and some system commands, libraries and devices were always "resident".
The last Amiga ROM or Kickstart was 3.1, with AmigaOS 3.5 and 3.9 came "AmigaOS ROM Update files". A system program called Setpatch would load specified ROM patches and make them resident on the first boot, and reboot again (adding a few seconds) with these resident for every reboot thereafter. If you didn't like this BTW you could also employ a "kickstart remapper" that relocated the kickstart ROM (and any ROM patches) into Fast Memory (32-bit) in one go on the first boot.
At one time Amiga was considering using QNX as the core of a new AmigaOS, then there was a change of direction to consider using a tiny, optimised linux core. These ideas were abandoned however, and AmigaOS 4.0 will be Classic AmigaOS ported to PowerPC.