In fact, The zero reset is not necessary in other Marlin firmware. I guess this is a bug in your current version. The testing 1.0.3 has a bug when calculating z axis offset after G29. it is fixed in testing stage version.
G28 ;Home x,y,z
G1 Z0 ; move Z to 0 position
G29 ;Auto bed leveling
My previous version, I need to manually reset the servo distance from print head in Gcode. After using newer version in staging branch. all fixed without any adjustment.