MOVF really should have been named COPYF.
Because it copies one register to another, leaving the original intact.

Similarly MOVWF leaves the value in W, and copies it to the register.

hth,