Ævar Arnfjörð Bjarmason [off-list ref] writes:
So it's a question of whether git-reset should do all reset-y things
without complaining, even when that infringes on git-checkout's
domain.
I'm not sure about "domain"; do not think we should also forbid for the
same argument "git reset --soft" because it violates update-ref's domain?
I changed my mind; I do not like "git reset --hard <commit> -- <pathspec>"
doing "checkout <commit> -- <pathspec>", unless we limit this when <commit>
is not given (or perhaps when <commit> is the same as HEAD). Otherwise it
would make things harder to explain. So let's forget about it now.