The trick is to combine it all, which is what MS is doing. For example your MS account stores any GDIDs that you've logged in with.
If you use a different identifier to track changes in a GDID/machine-id/etc., that means you can continue tracking using mainly just the new machine-id, but you should always keep trying to correlate it with other things in case it changes.