Klipper doesn't seem to adjust Z after BED_MESH_CALIBRATE
I have identified the problem as lead screw backlash! 

Bed calibration and Z-axis offset compensation appear to be working as intended, but there is enough backlash in the Ender 3 stock lead screw that the corrections in Z-axis movement commanded by Klipper result in almost no actual nozzle movement.

I'm measuring about 0.35&nbsp;mm of backlash in my lead screw.  With differences between the lowest and highest points of my bed being only 0.6&nbsp;mm the best case scenario (which would only happen if I was using my entire bed) is that the actual nozzle movement would only be about 42&nbsp;% of what Klipper commanded.  The fix for this is to change out the lead screw for a ball screw. The problem could also be mitigated in Klipper if Klipper implemented backlash compensation, but from what I've read on GitHub it doesn't seem like that is a feature the developer of Klipper wants to implement.

Update:

I installed this anti-backlash nut and it greatly reduced the backlash, but didn't eliminate it. I've uninstalled my solid bed mounts and reinstalled springs until I upgrade to a ball-screw for the Z axis. The auto bed leveling compensation still does something, but the adjustment allowed by having springs is what is really doing most of the leveling work.