G41/G42 work fine while in G54, regardless of what the offsets are. I think this is because G54 is the default coordinate system, so there is less going on internally.
Even when I'm working away from the origin, I still use G41/G42 most of the time. It's just what I'm used to. I program and run big industrial routers in my day job, and we use radius comp 100% of the time. We get tools sharpened, and never really know what size tool might be in the machine. With radius comp, it doesn't matter. I can pro0gram a part tomorrow, and cut it next year, and it will cut correctly regardless of what size too is in the machine.
Up until now I have only used G54 to reset the X and Y offsets to zero after using G55, etc. to offset the origin.
Not exactly what you mean here. Going from G55 to G54 doesn't "reset" anything, it changes to a different coordinate system with a different origin.
The aberration you found when using mirrored programming is another indication of this.
I wasn't using mirrored programming. I was creating gcode from mirrored geometry in my CAD program. Basically two mirror image identical profiles. Since both were conventional cut, it was as if the direction was reversed on one profile. For whatever reason, the G42 worked fine on one, but didn't work on the mirror image part.. I ended up offsetting the profile in my CAD program and not using G42 for this one part.. Not sure if you follow me, as it's a bit difficult to explain.
I've seen another instance where the toolpath just veered off and traveled away from the part in a very large arc.
In both cases, it seems that Mach3 had trouble calculating the offset at transitions between certain segments. In my case, the geometry was all tangent arcs and lines, and should have been a simple case. But it just wouldn't work.
But as I said, I still use it all the time, and it almost always works fine for me.