I have made a few observation about path-finding:
1) _It does not consider roads. Between two cities with road it will rather walk 6 squares of non-road, than 7 squares of road, though the road would almost twice as fast
2) It does not consider city-limits. This means it will not search for the part of the city that would take the shortest route to get to. Combined with the road-bug, this means it will sometimes take a longer route with no road than a short road-trip to a funny corner of the city.
3) It does not appear to understand movement penalties. This means the units will often walk through 2-movement cost forest when there is a slighty longer route with 1-movement cost.
4) It does not abuse movement penalities. Because you can also move into any legal field with you last move, it is most effective to walk n-1 steps at lowest cost (where n is the movement rate) and then use the last step to walk onto something slow (forest, rugged terrain, etc).