No matter the distance they have to cross, they will always try to go straight for their target without regard to their battery charge and, when their battery depletes, they will slowly start to move towards the closest roboport.
This can create situations where it is either very inefficient or even impossible to reach their destination if your roboport network forms a L or a C shape with them having to cross in the middle.
They would try to cross straight from the center
The small changes that I believe would really help is, before going straight for the target, they should check:
With a full battery from the nearest roboport to me right now, can I cover the full distance?
If not: What is the farthest roboport from me that gets nearer to the target that I can reach with a full battery including depleted slow travel to recharge? And after arriving there, it does the same.
I've made this image on paint just to illustrate how the logic would work for this new travel distance calculation.
