History expansion actually works on the current command as well, using the event designator !#. Combine this with the word designator for the last argument, $, to get the parameter you just typed.
And you can use all the regular modifiersmodifiers over it, so if, e.g., you are renaming a file in a far-away directory, you can just type:
mv path/you/do/not/want/to/type/twice/oldname !#$:h/newname