As long as parity is valid, there are no corrupted files. If a read operation gives an error, the rest of the array drives are accessed and the data that should be there is calculated from all the other array drives. That value is written to the drive to repair the read error. If that write operation fails, the disk is red balled, and is not used again. All subsequent reads and writes to that data slot are calculated and emulated using all the remaining array drives.
"Moving" data off of that emulated drive slot involves reading and writing from all the array devices, so the least stressful way to keep that data safe is to rebuild it back to a new device. Since all sectors of all array drives are needed to emulate a missing device, all sectors must be put back on the rebuilt device to allow the new device to participate in the array parity calculation. If only the sectors containing active data were written, then parity would be wrong at the other sectors on the disk, and parity would need to be rebuilt. If a different drive were to fail, it could no longer be emulated accurately and data would be lost.
The GUI is all that is needed to replace a drive, no need to go the shell.
Removing a drive slot, even when all drives are perfectly healthy, is way more complicated. To remove a data slot you have to reverse what was done to add it. First, all data must be moved to other drives, then all the sectors of the drive to be removed must be set to 0 so the parity calculation is not effected when the drive is removed. That is a long process on a healthy array, on one that is having problems it may not even be feasible to do in a timely fashion.