The co-ord stuff and scaling is sometimes iffy.
Mostly, it is not wrong, necessarily.

If the machine was set up with a certain abs. position, homed, then you use a different offset g54xx, it is unclear which units should be used.

Since the work co-ords are not tied to a scalar, how is the sw to know what is/was the correct offset base in global terms.
If a work co-ord is offset say 10,0 mm, and I switch to imperial, should the offset base adjust by /25.4. Why ?

Likewise, should the machine global values adjust, or not ?
Why ?

If the home switch in z is offset 10.000- mm in z, metric, and I switch to imperial, should the home-pos value adjust ?
If I read in the value into a parameter say #3000, should that number adjust ?
Why ?

I am NOT saying it is right, logical, correct.
What I am pointing out is that it is very complex with no clear right answers, mostly.

The UCxxx, and the chinese offline controllers, are mostly much less complex and donīt support a lot of the features in gcode.