Clearly there are several ways of determining whether a waypoint has been passed.
Sometimes the software does get this wrong. For example a KLN94B (an "IFR approved" GPS
) has a bug in that if you enter a route which ends where it starts e.g.
EGAA ABC DEF XYZ EGAA
then, when still on the ground at EGAA, slightly more than half the time it thinks the first waypoint is XYZ when it "obviously" should be ABC. And no I didn't select reverse route. Honeywell confirm this is a known feature and offer a work-around like
EGAA ABC DEF XYZ HHH
where HHH is a navaid close to EGAA
There is more fun to be had when bimbling around for a bit (away from the GPS route) and then [re]intercepting the GPS route. Most units don't do anything sensible.
There are other quirks, like the computed ETA to destination. This is based on the current GS, but that obviously won't be maintained if the route zigzags around a bit (the wind component will change). Same for any computed fuel reserve at destination!! Even with an air data computer available, the GPS doesn't calculate the wind properly for each leg.
One has to know the particular unit and its quirks. It's not a big deal because one has the moving map so one can always see where one is.
A lot of the programmers should be shot.