The only way I can explain this is if the actual route data is going past the turn and then approaches it from the other side.
Okay, three times (in two places yesterday and once this morning), I confirmed that this is NOT the case. GPSapp is definitely telling me to turn left when the map data and the images on the screen clearly show a right turn is necessary. There is definitely something fishy going on with it.
Reason I'm so sure: I re-did my daily commute routes using Siberia's method for creating route data from StreetAtlas. In the past, I had used the MapsOnUs data, with which I had no way of verifying the details of the line segments. With Siberia's method,
I'm the one drawing the line segments, so I'm 100 percent certain I did not do a "zig-zag" at those intersections. The intersection was clearly just two plain line segments with a precise corner between them. Exactly as I drew them in the first picture at the top of this thread.
The three recent occasions I observed GPSapp telling me to turn left when it should have said right, each time it was almost identical to the illustration I gave above: A very clear, clean, straight turn with no ambuguity. However, this time, with the new StreetAtlas data, my "real world" position matched the map data almost perfectly, enough so that GPSapp shouldn't have been trying to be helpful about re-acquring an off-track situation. Also, it was correctly showing its white line "snapped" to the road line, as I showed in my simulated screen shot above.
I'm wondering... Perhaps it's an indexing thing? Maybe a pointer is off-by-one somewhere, and it's telling me the left/right direction for some turn in the past, or some turn in the future, instead of the one that's highlighted and coming up?
When I observed this happening, the street name is correct for the turn that's coming up, but perhaps it's the calculation for left/right that's gotten desynchronized? In the situations I observed, I could see how it might say that if there were a pointer problem.
For example. Let's say my next turn is Right on Foo road, and the turn after that would be a Left on Bar road. The screen says "Turn LEFT on Foo road", as if it was giving me the correct street name for Foo road, but giving me the incorrect turn instruction from Bar road.
This might also explain the reason I sometimes see a "Turn SHARPLY LEFT" instruction when I'm really just going more or less straight through an intersection. Or seeing a "Bear RIGHT" when it's actually a very sharp right.
That's just a stab in the dark... but hey, I'm trying to be helpful.