And mirroring - what do you do when one disk reports the contents of block X as FOO but the other one as BAR. Which one has the correct block?
Admittedly much of this could be worked around by smarter RAID implementations: i.e. don't fail the entire disk if one block is unreadable, but continue attempting to read the rest of the data as you rebuild the parity onto a new disk. Doesn't ZFS do something like that?