Circuit calculates your optimal route by simulating thousands of different combinations to see which order is the most efficient.
Occasionally, upon first glance it can look like the route isn't always the most efficient, but I can assure you it is.
Most of the time, it's because Circuit create's a full-loop when planning routes.
Circuit defaults to creating a full-loop route.
Unless told otherwise, Circuit will produce a route based on the assumption that you're going to want too finish at the address you started from. If this assumption is correct, it can often be more efficient to visit a stop on the return party of a journey, rather than the outgoing part.
This can lead to situations like this:
Circuit chooses not to take a slight detour to visit (2) before (1), because it knows it's going to have to return to the starting point anyway, and it's more efficient to just take the alternative route home than it is to make a detour on the way to (1).
This kind of optimisation is very difficult to perform in your head once you get to a large amount of stops, but Circuit can handle it easily.