With VPS disabled, it's possible that the altitude hold won't be as precise. This seems to be most noticeable when flying near the ground at high speeds.
The Mavic should always be more stable when it's able to use VPS (assuming the ground can be accurately detected). Unless you're performing some kind of maneuver/shot that requires your Mavic to stay at a precise altitude, it likely won't matter if VPS is on or off.
The compass and GPS have no effect on the Mavic's ability to hold its position vertically. It uses its onboard barometer and downward sensors (if enabled).