The only real difference is how you select the objects. Resync selects based on timestamp, migrate selects either individual objects or subtrees.
1.0 it only looked at the objects that had an association. Since then, any object could be involved in a Resync.
There might be more information for this subject on one of the following: