mars to earth, entering orbit in t-18 hours --- I'm on holiday, back in London town tomorrow
Regarding storing patches, this is the reason: the microcontroller has 1Mb of flash memory organised into several sectors. To store a patch, a sector of 128Kb is first erased then programmed. We've allocated four sectors for user patches, and the rest is for firmware and factory patches. Factory patches can't be individually erased.
The new, upcoming version of the firmware (we've been working on it for ages!) changes all this: an amount of flash space is organised as a virtual file storage, allowing you to change all factory patches and store other things too like samples. But because it's flash, we have to make sure to do things like wear levelling and carefully manage the memory when adding and replacing content. Data must be erased before it is overwritten, and erase is a) very slow and b) must be done by full sector. But the firmware takes care of that, so that the user experience is transparent.
Hope this answers your question!