Inside a MEMS accelerometer there are some miniature spring-mass structures that displace under gravity or external force (acceleration). These forces are proportional to or can be indirectly quantified by capacitive changes due to their displacements. If an accelerometer is made ideal (perfect) and is laid flat on a surface, it would theoretically read \$ A_x = 0g \$, \$ A_y = 0g \$, and \$ A_z = 9.81 m/s^2 = 1g \$. In reality, we have to calibrate it, but I can't think of any sensible way of offsetting (calibrating) theses g values other than comparing the accelerometer values against a known mechanical design (pendulum of known inertia, free falling from a known height, rails of known direction and length etc.) then offset the measured values against a known physical values. Like calibrating a weight scale, we compare the reading against a physical, calibrated mass then either tune the bridge balance or hardcoding it in the firmware.
But in countless tutorials I found on google or youtube (e.g. Calibrating the BNO055 9-axis Inertial Measurement Sensor), the accelerometer calibration are carried out just by leveling and holding the accelerometer at different angles. If \$ A_z = 10.1 m/s^2\$ to begin with, in a minute or less of calibration, \$ A_z \$ then will magically correct itself to \$ 9.81 m/s^2 \$.
How is that possible? How does an accelerometer correct itself just by having it positioned at different angles? And if the accelerometer can correct itself, why do we need calibration in the first place (it may as well calibrate itself in operation)?