Hey @Ryusuke T, the AGV Network normally uses dijkstra's algorithm to determine the best route to travel. The documentation (in the link) links to a Wikipedia article about the algorithm that may help explain the behavior you are seeing.
On that same page in the documentation, there is a section called "Debugging Route Costs", and you can follow the steps in there to see how various paths are determined between a control point and other control points and path transfers.
I'm guessing how things are ranked in the tree determines the order of different points when they are plugged into dijkstra's algorithm. How control points are ranked in the model tree, or how control points, paths, or pathPoints are ranked in the AGVNetwork's tree are probably affecting the order of those things when they are used to determine the shortest path between points on the network. And that is why you are seeing different results when you move a control point around - it might be affecting the order/rank of things in the tree.
For the red path in your screenshot, that was probably just the first path that was found to be the shortest distance between the control points. While there are other paths that have the same distance, their distances were calculated after the red path. Since they are not any shorter than the red path, they are ignored.
And when the green path in your screenshot was determined, that path was the first path calculated to be the shortest path. While the red path is the same distance as the green path, because the red path was calculated after the green path, and its distance is not any shorter than the green path, it is ignored.