Situation: In my case, a SharePoint site had been started as the public site on Office 365 for an account that had been set up a little while in the past. When it was created, it was created with a name -- so domain -- that wasn't what my customer wanted to present as their web site. IE, like notagoodname.sharepoint-public.com. Since names can't be changed and a custom domain name can't be HTTPS, we created a new O365 account and moved the guts of the site to a more appropriate team site -- like muchbettername.sharepoint.com. I used HarePoint to move most of the mostly completed lists to the new site.
Result: I had a couple small hiccups that the HarePoint team responded to and fixed very quickly. A larger issue had to do with migrating lookup values and maintaining the proper relationship when the new list item ids aren't the same as the old ones. While I ended up writing some scripts to update my lookups after migrating my lists with HarePoint because time was of the essence, the HarePoint team did provide an update within a week or so with the correct functionality. I was very impressed because it's not a trivial problem to solve.