Hello Lundin,
In safety critical applications, I might suggest you would need to use your "mirror segments" concept whether you were using EEPROM or flash for data storage.
A quick look at the Microchip data reveals a EEPROM erase/write cycle period of up to 8 ms per byte. I do not have this data for the Atmel devices, but I assume it will be of similar order of magnitude. Using the above figure, the update of say 16 bytes may take up to 120 ms to complete (typically 60 ms).
For the S08 devices, it takes 20 ms to erase a sector, but only 20-45 us to program a byte (using a typical clock rate). For a small amount of data, the setup and programming time will be much less significant than the sector erase time. The total update time will depend on the size of the data block (assumed to be somewhat less than a full flash page). For example, if the total data block size was 100 bytes, this would take a worst case period of about 25 ms.
With the programming of data into either EEPROM or flash, this will take a significant amount of time, with increased risk of corruption in the event of disruption. The "mirror segments" concept previously described would appear to provide detection of corruption in either case. Another possibility for critical applications is to provide early warning of loss of power.
The above assumes small amounts of data to be saved. For more extensive data storage the mirror segments appears to become more difficult to apply. I would possibly consider external "fast write" serial devices, such as FRAM (a few microseconds per byte).
The low end Microchip devices (with up to 8K instructions) seem to provide EEPROM of either 128 or 256 bytes. Presumably when this is exceeded, an external memory must be used anyway. The concept of alternative "data flash" doesn't seem to fit the Microchip architecture - probably why they needed to include some EEPROM.
Regards,
Mac