> All this is possible because Mercurial stores the name of the branch in the changeset header
Then, everyone who tells that Mercurial is 'distributed' is lying.
Not everyone uses the same VCS. Suppose developer A received the set of patches via e-mail and applied them to his branch. Developer B received the same e-mails and applied them to his own branch. If their local branch names are different, these branches are now diverged forever.
The funny thing is, they were written more than 2000 years ago, and no one has been able to add anything substantial to the subject since then :-)