Dear Chongbin,
the real problem is that if the two copies of FAT differ it cannot be easily justified which one is the correct one. This can only be ensured by checking FAT table consistency. If both FAT tables are consistent but still different, it is necessary to match chains in FAT tables to directory records.
In other words, complex check of consistency of all filesystem structures would be required. This is a time consuming or memory hungry task (high speed/memory tradeoff ratio) which can hardly be accomplished in an embedded system (remember checkdisk, disk doctor or similar third party tools). A side note is that there still would not be 100% recovery guarantee.
Please note that FAT filesystem was never designed with power failure safety on mind (this is not about MFS but rather a property of the FAT filesystem as such). The second FAT copy is there to provide a backup or "hint" for an offline (unmounted) filesystem recovery tool, not as a run-time recovery mechanism. So it is common that FAT filesystem implementations even on "big machines" read only the first FAT and write to both.
If real power failure safety is required then some kind of journaling filesystem has to be used instead.
FAT filesystem does not feature a journal - that is why FAT filesystem can never meet power failure safety requirements - this is a fact and MFS cannot do much about this.
Best regards, Pavel