What is the most reliable method for merging records with memberships?
I looked into the code and seems like you need to enable the add new checkbox to move the membership to the newer contact.

Add New stands for adding a new membership on the main contact from the duplicate contact.

Case when add new is not needed:

This is not needed when both the contacts have a membership of same type and they need to be merged between the two contacts. For eg. 


Contact A has a membership of type 1 with start date = 1/1/2018.
Contact B has a membership of type 1 with start date = 2/2/2018.


Now, when contact A is merged to contact B, the merge membership is done and all the field values of A membership is copied on to B. Here, no new membership need to be created. Hence, add new should not be checked.

But, in your case, as the membership on the main contact is not present and need to be "added" from the duplicate contact - we need to select the add new checkbox on the merge screen.

Agree it should be documented as I don't see it anywhere on docs.civi.