"Now I'm really confused."
Me too. Your experiment sounds reasonable to me. I will give it a try on mine but it will be more than an hour before I can do so. I will come back with the results as quickly as I can, but an hour may even be a little optimistic.
"I will come back with the results as quickly as I can,.."
O.k. The results are in. With surprising results.
My results inside the house, surrounded by magnetic interference, was the same as yours. So I took it outside, in the middle of a large open area. That's where I learned a couple of things.
INDOORS: (First time)
I got the same result as you. Fast response to moving the drone itself. No response from moving only the top shell/GPS module.(but see comments under "INDOORS: (second time)" below.)
OUTDOORS:
I took an original H520 out to a large open area and repeated your experiment. I got a different response.
With the top shell in place, it looked just like the indoor response. Fast changes that matched the movement of the drone.
But a big difference when moving the top shell/GPS unit only. The compass would move SLOWLY to the new heading. A 90 degree turn took about 15 or 20 seconds for the compass display to move slowly to and match the new heading.
INDOORS: (second time)
It looked like the outdoor response, but with even longer time for the reading to catch up with the heading of the top shell. I wonder if this is what was happening the first time, and I did not notice the very, very slow movement.
Conclusion:
What you see short term and rapid response on the controller compass is probably a calculation. It is likely a best estimate calculation based on the best available compass readings and movement sensed by the IMU. The full system seems to use the actual compass signal, averaged over time (the running average time based on current compass reading quality?) as the basis for the heading. It then uses IMU input to calculate a fast reading that matches the short term movements of the aircraft. This is just my guess. The smart guys will need to help us understand if this is even close to correct.