I am not an expert, but I was confused about offsets when I started out, and took the time to "get it". I hope I'll share that here

There are two ways to measure a tool:
1. Measure it relative to some predictable surface, on the bench. I.e. use a jig and height gauge to measure the actual "length" of the tool.
2. Move the tool tip to a known point in-machine, and do the math.
The first case is common in bigger shops (they can justify the extra equipment

but is typically limited to a Z measurement, typically referenced to the center of the bottom of the spindle itself. It also assumes the tool sticks out the bottom of the spindle (Z-) and not in any other direction.
The second case is used with toolsetters. On my machine, I probe the toolsetter to get the machine Z at the probe point, subtract some arbitrary number I store the XY and mostly Z location of the toolsetter in the INI file), and that's the "offset". It's no longer a *length*, it's an *offset* from a reference point. My "reference point" is near the end of a 1/4 endmill (about 2" below the spindle), by design, so if you forget to set it at least your crash will be less spectacular.
In LCNC you can also do a "tool touch off", where you've probed or touched off your workpiece, change tools, move the tool tip to a known location, and tell LCNC "the tool tip is at XYZ, please set the tool offsets so you agree." This is useful if you have multiple "spindles" on your machine (my Z carriage has both a spindle and laser, so the laser "tool" has a non-zero XY offset too). If I touch off 0,0,0 to a point with the spindle's tool, then move the machine so the laser is at that point, the display will show the laser's "offset" from *the current tool* (i.e. it displays machine+G54+T1+T2) but LCNC can do the math for you.
Fundamentally, they're all just offsets in the nine-axis space LCNC uses. If you want to move the tool tip to a work-local XYZA coordinate (my machine has 4 axes), you take that XYZA, add the G54 XYZA offset, add the G92 XYZA offset, and add the Tool XYZA offset, and move the machine to that absolute XYZA location.
So a "workpiece touch off" assumes the tool offset is correct and sets the G54 offset, and a "tool touch off" assumes the G54 offset is correct and sets the tool offset.
So to return to your question: "it seems like it's moving the G54 Z". No, it's not. The displayed Z is the machine's absolute location, plus the G54 (or other WCS) offset, plus the Tool offset. If you hit the "View->Show Offsets" menu these additional offsets will be displayed.
So it's important to remember that a "touch off" moves the G54 relative to ALL the tools, and a "tool touch off" moves one tool relative to the others. Thus, you can't change tools and then touch off with that unmeasured tool, because you've changed both sets of offsets at once, and LCNC will be confused. Put the tool in, measure it, then touch off; or touch off with an existing measured tool, then change tools and measure it.
Also, I think all CNC machines handle offsets basically the same way, but present it to the user different ways (different words, macros, buttons, etc.).