FWIW, the Marlin 1.1.1 I’m running does seem to save its bed leveling parameters, although they’re not active on powerup by default. I think the problem is that if you save them, you put all your faith in the z-home switch, which is mechanical and likely much less accurate than the nozzle probes.
As for the Z-button, my impression is that its only purpose is to set the z-position for the probe. If its trigger point varies a bit, it will only look to the probing sequence as if the bed has moved up or down a bit and once it calculates the bed plane from the probe points, that no longer has any function. I might be wrong about that, though.
There also seems to be an appreciable effect of temperature on the z-leveling, which makes sense. When the nozzle heats up, it will get longer, and the bed will expand upward. Both of these combine to put the nozzle closer to the bed as the temperatures go up. I don’t know how people who don’t re-probe for each print deal with these variations (unless they always print at the same temperature).
As for “hitting print over and over”, I’ve removed the probing sequence from the generated G-code, precisely because it’s unreliable, at least when printing nylon. Instead, I manually probe after powering up, make sure I get a good result, and then print multiple jobs without re-probing.