It's useful for writing some scripts or shell aliases if hg amend doesn't
abort the series of commands if there's nothing to amend. Users can then have
something like "alias amendevo='hg amend && hg evolve -a'" to amend and evolve
in one step.
To do this otherwise would require something like this:
alias amendevo='[[ -z "$(hg status -mar)" ]] && hg amend && hg evolve -a'
While that's not too onerous, it's not immediately obvious to most that this is
what would have to be done, so it's a small hurdle that users either have to
spend time to figure out on their own or ask about.
A similar change was made to hg evolve recently, for similar reasons.