Ok I love a puzzle and I spent too much time thinking about this. I think you’re right that there are no workspace shenanigans that make this automatic because, as you said, there is no way to apply an offset to a workspace.
But there may be another way. If you imagine an additional axis with a Z leadscrew you could mount the probe on the second Z, and instead of lowering the tool onto the touch probe you could raise the touch probe to meet the tool (hypothetically if you could get G38.2 to work on the extra Z axis). You could touch off your workpiece first (and G92) and then raising the probe device to meet the tool after which the probe would be aligned with your workpiece zero and it would be simple to touch off after changing tools. You would still want a separate workspaces for the XY at least, so you can set XY at your workpiece origin and still be able to find your probe device.
Unfortunately I dont think its possible to do G38.2 on any axes other than X Y or Z. And anyway its a lot of extra construction to build a second Z axis for the probe to ride on.
But you might be able to get the same effect with a ramp. Suppose you have a conductive ramp along the X axis and suppose it goes “uphill” in the +X direction. You touch off your workpiece as before and establish G92 Z0 for your workpiece. Now at some point along the ramp, at some unknown X coordinate, you would have Z that matches your workpiece Z. So move to the left side of your ramp and probe G38.2 in the positive X direction. You would find the X coordinate where the ramp matches your workpiece Z. Set G92 X=0 in some other coordinate space so you can come back to that X coordinate in the future. Then when you change tools, you go back to that X coordinate on your ramp and G38.2 downward to reestablish the workpiece Z with the new tool.
The ramp would need to have a very shallow incline or else the tool diameter would induce an error (also true for single flute bits where the point of contact is unpredictable).
This idea is somewhat indirect on a conceptual level but the physical implementation and the gcode should be fairly straightforward.