I did some similar designs with these cores in the past but the internal memories were recognised and quartus used M4K blocks for that. so maybe some kind of quartus settings ?
as long as the rom is implemented as M4K memory blocks, there is no need to recompile everything. there was a thread here describing how to update the "rom" without recompiling as only the memory initial files were updated. so with the hex file it was possible to call quartus via command line to upgrade the memory inside the sof.
i think it would work the way you wrote.
BTW: nice to know that sdcc is still used, i left the developer team a couple of years ago. had used sdcc all the time for real 8051 and softcore types.