Understanding of the auto bed leveling process (BLTouch)
What may be confusing is the use of the naming of the mechanism &quot;Auto Bed Levelling&quot;, or short ABL, does not make your build plate to level itself with respect to the frame of the printer1). Hence you are instructed to always tram (level is rather misleading as it doesn't involve bubble levelling, instead it is meant to tram the bed with respect to the X- and Y-axis) the build surface as good as you can.
The ABL process could better be described as &quot;Height adjusting to scanned bed geometry&quot; or something like that, as that is exactly what is being done. The G29 command scans the bed surface and (depending on the firmware options) it generates a mesh or a plane through the measured points. When printing, the nozzle will follow the bed height geometry and fades this out over about 10 milliliters (depends on setting). So, if you do not tram the bed correctly, you will end up with a skew bottom of the print as the fade out will cause the printer to print eventually parallel to the X- and Y-axis.
Note that specifying the Z-offset in the firmware is rather useless, you cannot measure this beforehand. It is far better to do this later using M851.
This answer describes in some more detail how the offset is generated and applied to the scanned surface.

1) It is possible to actually level/tram the bed (e.g. in Marlin firmware), but that are different processes. E.g. a tramming assistant is available when using the G35 G-code. And, automatically, (for specific printers) possible on build plates that are moved up/down by several lead screws (look into NUM_Z_STEPPER_DRIVERS in Marlin's Configuration_adv.h file). But still, this maintains a certain level, it does not scan the complete surface, that can be achieved by the ABL process.