I did not quite get to visualize what is that coded text trying to potray.
It is simply telling you that if you are copying between
non-overloapping regions of memory, then abandoning the copying at any moment and then restarting it from the very beginning is easy: just restart it and no one will notice. Done.
But if you are copying
overlapping regions, sometime during the copying the instruction might override some of the data in the source region. In which case restarting this instruction from the beginning is not possible: the source data has already been lost.
Here's an example:
Let's say you have a byte sequence in memory '****[0123456789]****' (square brackets mark the source region). And, say, you are copying it 2 bytes to the left. The proper result for left-to-right copying instruction is '**01[2345678989]****'. Page fault or no page fault, you are expecting to get this result.
However, let's say page fault happened when the instruction was reading byte '6' from memory. At that moment the memory state was '**01[2345456789]****'. As you can see, we are in the middle of the copying, and the initial portion of the original data has already been lost/overwritten. You cannot just nonchalantly restart the instruction from the beginning, since the result will be incorrect.
That's exactly what your quote is talking about.