By the time you've noticed that it happened, it is too late to avoid trouble.
Furthermore many organizations set up and organize branching in such a way that you have no option to freely define your branch like that. For example in the Microsoft story I linked to there is a multi-level merge process. If you just merge from a random other branch, then multiple merges later when code from your branch is officially merged with the other branch you'll have caused a nightmare because you've got an old and buggy copy of all of the changes in that other branch. The people whose job it is to sort it out will want to kill you. Particularly if you've merged in code that was explicitly discarded from the other branch.