davyzhu,
The ROM must be factory programmed. However, the ROM address space can be mapped (via software) to external memory (EEPROM FLASH, etc). I don't know about the cost of factory programming for this device. However, it has been my experience on other devices that the break-even point cost-wise is 1000 devices. In other words, if you are using fewer than 1000 devices, you are better off, strictly from a cost perspective, using external memory. Of course, there are other considerations such as space, power, etc.
Regards,
Kral