Wouldn't it make sense to have the printer save the z offset? It gets “lost” between RESTARTs and power cycling.
For various different reasons the value isn't a consistent single value worth saving:
The gcode z offset is never saved under Klipper nor does that make sense. It’s supposed used for fine adjustment of filament squish to assure non-tangential bonding of extrusions to adjacent layers and walls.
If your gcode z offset is negative then you’re mid-using it to include an error adjustment for not having your z probe calibrated. This then leads to an inappropriate workflow that makes you think you should be saving it in order to keep accounting for the error adjustment from being uncalibrated .
What you want is to calibrate your z probe so you don’t need to keep the error adjustment value overloading the gcode z offset from it not being calibrated.
You can read how to calibrate your z probe on the klipper docs stored on your printer or online at https://www.klipper3d.org/Probe_Calibrate.html
Be aware that in later Elegoo software updates they broke this and other key klipper features purposefully, so you’ll need to manually edit the probe offset value to printer.cfg.