Doesn't swapping increase the chance of total failure?
You're basically using them equally, which makes it more likely that the surviving hard drive failes while copy the data to the future brand new replacement drive.
(This is obviously assuming, that storing a drive is different to you using the drive and that both drives will fail around the same time)
Languages like Java or C++ have Exceptions, which are errors, that are not explicitly mentioned in the function signature. Meaning, you might need to handle an exception you didn't even know existed. And if you don't, your program will just crash when these exceptions occur.
In Rust all errors are explicitly mentioned and part of the return type. Because of this Rust has a lot of ways to quickly handle an error. One of those ways is "Trust me, bro" (or .unwrap()), which converts the combined error/success return type into just a success type, causing the program to crash if it actually was an error, restoring the more unsafe behavior of other languages.