This topic never dies, which is probably neither surprising nor bad since it is just sufficiently complex that the subtleties frequently get lost.
I'll preface the following by saying that
@Meta4 is correct - there is no basis for needing to recalibrate when changing locations even though the earth's field varies with location because, while it may be somewhat counter-intuitive, the calibration process doesn't care about the earth's magnetic field.
To understand the reasons requires starting with a clear description of what the compass measures and what happens to that information. The
earth's core is magnetized due mostly to rotation, with magnetic north towards the North Pole and magnetic south towards the South Pole, although the two axes are not perfectly aligned.
The magnetic field lines emanate from the magnetic south pole and return to the south pole in the classic bar magnet pattern, and so at any point on the surface of the earth the magnetic field lies at an angle to the ground, (except near the equator where it is approximately horizontal) called the inclination, and points towards the magnetic north pole.
Since the magnetic north pole and the geographic north pole are not in the same place there will, in general, be an angle between the horizontal component of the magnetic field lines (that point to magnetic north) and the direction of the geographic North Pole (true north). That angle varies by location since, as you look to the north, the apparent relative positions of magnetic north and true north depend on where you are. That offset is called the declination (or variation). So if you also know the declination (you have to know it based on your location since there is no way to measure it) then you can subtract the declination angle to determine where true north is.
Back to the compass - its only job is to determine the direction of magnetic north, and to do that it measures the direction (relative to the aircraft) of the horizontal component of the local magnetic field. If the only magnetic field that it sees is the earth's field then that is trivial, but the aircraft, itself, has a magnetic field due to internal ferromagnetic components which will, in general, change the direction of horizontal component of the field.
Luckily, magnetic fields follow the
Superposition Principle, which means that if two separate magnetic fields interact, the net field vector at any location is simply the vector sum of the individual fields. So, if the magnetic field of the aircraft can be independently measured then, with the assumption that it doesn't change as the aircraft moves around, it can simply be subtracted from the total magnetic field measured by the compass to leave just the earth's magnetic field.
That measurement is achieved by the calibration process since, as the aircraft is rotated, the earth's magnetic field appears to rotate while the aircraft's magnetic field stays constant. The orthogonal rotations in the calibration process allow those two fields to be separated mathematically, and the FC now has the aircraft's magnetic field (the calibration) stored. It subtracts that from the measured field in flight, takes the horizontal component of the resulting field (now assumed to be just the earth's) and thus knows its heading relative to magnetic north.
However, for navigation it needs its heading relative to true north, since that is the basis of the coordinate system for positioning, such as latitude/longitude. To calculate that heading it has to add the local declination value. There is a common misconception that somehow the calibration process determined declination but it should be obvious that it cannot do that. The orientation of our coordinate system is arbitrary relative to magnetic north and there is no way, as I mentioned above, to figure out the difference between true north and magnetic north with a compass; you have to know the declination separately by looking it up on a map, or calculating it approximately using spherical geometry and knowing the relative positions of the true north pole, the magnetic north pole and your location or, for the most accurate results, using your location with a
global model of the earth's field.
The FC does the latter - it has a stored global magnetic field model in firmware and as soon as it gets a GPS position lock on startup it computes the declination (and inclination) from the model and adds it to the magnetic heading from the compass. That's not even educated speculation - you can see it happening in the DAT files. Now it has true heading.
Note that all this assumes that there are no other magnetic fields present - only the earth's and the aircraft's. If there are other fields due to ferromagnetic structures, large or small, then the aircraft may or may not be able to detect their presence. The FC almost certainly has some criteria for acceptable field strengths and it knows what the inclination should be for comparison with measurement. But beyond that, any local field potentially just changes the apparent direction of magnetic north and, if that error is significant, leads to all the common problems after takeoff.
Those flight problems are also not obvious in their origin - many people ask why, since very local magnetic interference will go away after takeoff, the problem only manifests afterwards during flight. The answer lies in the way that the FC actually computes heading (yaw). The primary sensor in flight is not the compass - it is the rate gyros - i.e. the heading is primarily tracked inertially in flight, not magnetically. The IMU heading is initialized using the compass heading, before takeoff and after the declination has been computed. In flight the compass heading is only used to correct for drift in the rate gyro data. So if, after takeoff, the magnetic interference goes away, then the compass heading will change without the IMU ever detecting rotation of the aircraft, and the IMU and compass now disagree by far more than the drift correction algorithm can handle. That's the source of all the compass and yaw errors and, since the FC now doesn't know which way it is pointing, it cannot navigate and, unless it quickly switches to ATTI mode, will fly uncontrollably if it tries.
I've wondered why they don't add some code to notice those sudden discrepancies and, as a first correction attempt, simply re-initialized the IMU heading. It seems as if that might handle the bulk of the compass error problems, since they are caused by interference at the takeoff site, but there may be other reasons not to do that.
There is also the question of "bad calibrations" - can they happen. I think there are a few scenarios in which that might occur. If the user is wearing something magnetic that may make it appear to be part of the aircraft's magnetic field. Or if the magnetic field is local enough to vary as the aircraft is rotated - that might have a similar effect.
So why might the M2 be asking for more frequent calibrations? It's possible that the criteria for compass errors have been tightened, perhaps because it only has one compass. It's possible that the startup checks for compass issues have been changed to make it more robust. It isn't a result of any change to the physics involved, and the random and variable DJI instructions to calibrate or not to calibrate when changing location are probably either due to miscommunications between the writers and the engineers or a broad statement to cover themselves when compass issues occur. It would be far more useful for them to include the advice to check the heading indicator before takeoff and ensure that it agrees with the actual direction the aircraft is facing.