I've written before about what I think are the compelling reasons for the switch so I won't go into them here. But I do want to talk a bit about the process of the switch, which went very smoothly.
The first key thing was that well in advance of flag day, I requested that the Launchpad administrators begin to mirror the upstream Subversion branches that I ultimately intended to move. This wasn't all of the old branches, which will remain in the read-only Subversion repository, but instead just the trunk, 2.1, and admin branches. Then I branched these three locally and occasionally bzr pull'd updates when the mirror saw commits to the Subversion trees.
This meant that by the time I was ready to switch, I had local up-to-date bzr branches sitting on my filesystem.
I also prepared by creating a few teams and projects to hold all the new data. I created the Mailman Coders team which will be how we manage write permission to the branches, and I created the Mailman Checkins team which will be used solely to feed branch diffs to the already existing Mailman Checkins mailing list.
At conversion time then, all I had to do was to push my local bzr branches to the ~mailman-coders team's hosted branch locations, and I was essentially done. When I pushed the branches with the new url, I used --remember so that from then on the branches would use the correct url; I did the same with bzr pull --remember and presto! the conversion was complete.
I should mention that cleaning up the old vcs-import branches (i.e. the Subversion mirror branches) was a bit of a pain, because I don't own these branches, the semi-fake vcs-imports user does. But hey, what a good way to owe my friend, fellow Pythonista and employee Michael Hudson some beers!