Rather than relying on (possibly subtle) context
or having two versions of each method, you might want to have the copy method and the mutator method and call them both when you want a modified copy. That seems the most clear (and flexible) to me. The overhead is not particularly onerous.
$cursor->move_right(3); # move cursor three chars to the right
$cursor->move_down(); # move cursor one line downwards
# and
my $left_pos = $cursor->copy->move_left(1);
# position one char to the left of the cursor
my $start = $cursor->copy->start_of_document();
Caution: Contents may have been coded under pressure.