$zmax=1 does set top of z as home, which is the design assumption in tinyG.
There seems to be a pervasive confusion between the use of the switches for limit and homing.
Correct observation.
When I hit machine home, I want it to go to z=max, x=0, y=0 in that order.
That is what tinyG implements.
Calibrating to a touch off plate is a totally different operation in my view.
Touch Plate is a CAM (e.g. Chilipeppr) function, not a motion control function, although some tinyG primitives can be used to implement Touch Plate routines.
Keep in mind that a machine zeroed to the material surface (via touchplate) is no longer “homed” by tinyG definition.