All I know is that the disassembly produces sensible-looking code. You can see from the fragment I posted that it's divided fairly neatly into routines. I haven't figured out the load address yet --- I have found two different string tables which are consistent with themselves (tables of pointers pointing at strings) but not with each other, which suggests two different load addresses?
Regarding serial flash: some microcontrollers will map SPI serial flash to address space. It's slow, but if you run the flash at 100MHz and the CPU at 8MHz or so it's manageable and drastically reduces the footprint --- you only need four lines to the CPU instead of 25 or so, which simplifies the board design. I doubt this device is loading chunks of SPI flash into RAM as RAM is expensive, but I've met GeneralPlus 8051 controllers which appear to do exactly that, so I'm not ruling anything out yet.
Regarding cpu_rec: I actually used the binwalk plugin for this, as raw cpu_rec got rather confused, presumably by the large amounts of encoded audio in the ROM image. It said this. The block quoted above is from the beginning of the block at 0x2800.
Code:
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 None (size=0x2800, entropy=0.756435)
10240 0x2800 6502 (size=0x1800, entropy=0.815547)
16384 0x4000 None (size=0x8000, entropy=0.700533)
49152 0xC000 6502 (size=0x800, entropy=0.682909)
51200 0xC800 None (size=0x5800, entropy=0.494502)
73728 0x12000 6502 (size=0x800, entropy=0.752871)
75776 0x12800 None (size=0x1000, entropy=0.708310)
79872 0x13800 6502 (size=0x800, entropy=0.735430)
81920 0x14000 None (size=0x4800, entropy=0.302463)
100352 0x18800 6502 (size=0x2000, entropy=0.713948)
108544 0x1A800 None (size=0x18800, entropy=0.727674)
208896 0x33000 6502 (size=0x1000, entropy=0.675372)
212992 0x34000 None (size=0x5800, entropy=0.683224)
235520 0x39800 NDS32 (size=0x2000, entropy=0.580428)
243712 0x3B800 None (size=0x1000, entropy=0.685640)
247808 0x3C800 IA-64 (size=0x6000, entropy=0.581180)
272384 0x42800 None (size=0x1bc000, entropy=0.866990)
2091008 0x1FE800 6502 (size=0x800, entropy=0.755303)
2093056 0x1FF000 None (size=0x1000, entropy=0.806666)