You're cherrypicking--no pun intended.
By default, Mercurial doesn't do any of these operations; you have to activate extensions.
If I were a newbie coming from Git and I wanted a similar workflow using Mercurial, I would probably start with rebase.
But these days, the Evolve extension is the way to go--using it is a lot easier than anything I've seen or experienced using Git: https://www.mercurial-scm.org/doc/evolution/user-guide.html.
I find it kinda ironic when in this message thread, people are praising a chart like this--http://justinhileman.info/article/git-pretty/. It feels like the DVCS version of Helsinki Syndrome…
By design, Mercurial makes it much harder to shoot yourself in the foot.
In contrast, there's an entire cottage industry (https://ohshitgit.com and the like) to help when you--inevitably--get into a bad situation with Git.