Hello cncman172,
I feel like your answer lead me more close to the resoultion of my problem - still I'm missing something.
In some cases we do not use homing, because it does not allow our work piece to be positioned with precision of less than 10 µm. Instead, we do fine-grained jogging methods to get the exact position, then zero relevant axes and start the process.
I tried to reproduce the scenario like this:
Start M4. G54 offsets are all zero, machine coords are also zero, resulting in all axes being zero'ed.
Then I moved axes X and Y to 79 and 359 and zero'ed them to update G54 offset to 79 and 359. After this I moved both axis to 86 and 1086.
After closing and restarting M4, the axis positions have been set to -79 and -359, which is exactly negative values of G54 offsets. If I now _move_ them to zero positions, they will definitely not be at the position assumed.
I expected M4 to start up at positions 86 and 1086. Also it does not ask me to save G54 offsets (it does this by default).