G29 is for average height for autoleveling.
Values are taken directly but zheight and positions stays computed for previous value until you recalibrate, that is correct.
Best solution for calibrating is using a metal block and hot extruder. You must know the exact height of metal block. Run G30 and you get a z height. Store real Z from M114 as well and adjust height until block just does not touch the block. It block is below nozzle and you can easily rotate it a bit you have still room left. When height is found check Z again.
cor1 = Zfit - Zlose
err = ZG30+cor1 - MetalBlockThinkness
Now correct z probe height = old z probe height + err