First, I suppose I should have prefaced my post with "In theory..." haha So, There absolutely is a need for the compass error message.
So, I will preface this post with..... this is my basic understanding. If I am wrong, or incorrect, please don't take anything I say as fact or law or any personal attack.
GPS alone can not tell where North is. At a very high level, a GPS receiver takes signals received from multiple satellites, and, based on a database of known satellites positions and timestamps (the difference of when the beacon was sent to when it was received), calculates how far away each satellite is. The receiver then uses trilateration to determine it's location on the planet - there are many variables that are taken into account including how time behaves in different gravitational fields (general relativity affects how accurate an atomic clock on a satellite will be vs one on the ground). So, all it gives you is a location. Unless the received is moving, and updates are taken at regular intervals, the receiver doesn't know what the heading is. A GPS receiver can travel in a 360° circle and know what it's heading is at any given point (averaged - based on "I moved from this point to this point in the last 60 seconds so my heading is X°), but not if it's stationary - it needs a start and end point to know heading. That's where the compass comes into pay - it will tell you the orientation/heading even while stationary.
Consider an iPad that doesn't have GPS - they all still have a compass (I think). So, when flying your P3, without GPS and dynamic home point, it will still give you the orientation window to show if you are facing the P3 or not. Even in airplane mode I think the compass is still active (I think). Same with the P3. It will always try to use GPS to know it's location, and use it's compass to tell you whih way it's pointing, but it won't necessarily use that info to fly. The only info it will always use to fly is the inertial input from the IMU.
For your last question, I will make assumptions. If you are flying under a compass error condition, and it enters and RTH situation, I can only assume it will just land. Or be really confused. haha I'm not really sure on that one - that would be a firmware thing. You're right, with knowing it's heading, it would need to fly for a bit to figure out which direction it is moving based on GPS updates) and make corrections so it can get home. That would be some pretty good programming.
As I read back, this all looks like blah blah blah blah.....