I've seen the silly U-turns too.
The usual cause is inaccurately placed route points.
If you plonk via-points on your route in mapsource / basecamp on the junctions, with the zoom level set far out, then you may find that the points are not actually on the junction at all. Zoom in and look: the point may actually be a few m to the right, on what is supposed to be a LH turn. The machine will then guide you up to the junction, insist you go R, then do a U-turn in a few m, to continue on your way.
This is why the general advice is to place route points some distance along the road you wish to take, not on the junction.
This issue is exacerbated if you plan the route on an online planner with different maps from your GPS.
You may have placed the routepoint *exactly* on the junction on the web based maps, but that may not correspond to the exact position of the junction on the maps in your GPS unit. So once again, it tries to route you to that point, and then do a U-turn.
Again, place the routepoints well along the road, not at the junctions, to avoid this.
And also, plan your routes using the same maps you plan to ride with.
As has been mentioned already, on Dual Carriageways, these are treated as 2 separate roads in the mapping software. So you need to be careful where exactly you set the waypoints.