I had two thoughts about Swarf's issue.
Keep in mind, I am a newbee to CNC and also to MACH 3, so these may not be reasonable ideas . . .
First; my undestanding is that Swarf's button is running some sort of macro. If so, could not the macro reset the machine coords, then MOVE to zero and then reset again, all within the macro? It seems to me that would correct for the minute error in calculating the position and the second reset would be the true zero sought.
Second; is there any practical reason one could not have more than one set of limit swiitches? I do not comprehend the reason to re-zero the machine coordinates at different points, but assumming there is some usefull purpose to that, why could there not be additional limit switched installed for the different set-ups? So you would plug in set A for part A and when you were going to run part B, you just plug in (or switch to) limit switch set B and re-home the mill.