Quoting Paul Burba in http://svn.haxx.se/users/archive-2010-05/0148.shtml
What's happening here is that the merge tracking logic erroneously
treats externals the same as switched subtrees and sets mergeinfo to
segregate the "switched" subtree, so if it is later unswitched, it
doesn't inherit mergeinfo from the root of the branch which was never
actually merged. This is fine for switched subtrees, but I agree with
you, it doesn't make much sense for externals (which might not even be
from the same repository!).
This problem exists in both trunk and 1.6.x.