but isn't the GPS receiver measuring the distance from the transmitting satellite.
Indeed it does by triangulating ranges from the satellites, it produces a 3 dimensional position and by comparing that with the WGS 84 geoid it works out that you cannot be on the surface and thus gives the difference as your altitude. The range from your 3D position to the waypoint may continue to assume that you remain at a constant altitude and gives you a range to a point vertically above the waypoint. If you change altitude, it will readjust the range to measure the new altitude above the waypoint.