A few more options to consider:
1. Give units in home territory a +1 to movement and reduce units in enemy territory to a move of 1. This simulates the fact that units defending home territory know and can use the best paths to reach the frontline quickly and the fact that any invading army will slow to cover its flank and rear as it advances. This also prevents the enemy using your road network against you, until he's captured it.
2. Instead of just 'patrol' why not go one step farther and also do a 'patrol border' order, which automatically sets the movement path to patrol the border of the civ (or the province where the order was issued). In fact, since having the unit moving in circles on the map could be distracting, I'd like the unit to disappear entirely and go into a 'province defense' force, but that can wait until later, since it would also require building some sort of GUI to deal with this 'province defense' force.
3. If playtesting shows that the above two aren't enough, and only then would I consider this option, we could implement some sort of ZOC that only occurs for the defender in home territory.
As a long term solution, here's what I'd like to see:
No units on the map at all (most of the time) and thus no tedious moving of units every turn...
There is a pool of units (which the player builds normally) for each civ, all new units enter this pool. This pool automatically defends the civ's borders (as in #2 above). If the player decides to go to war, he brings up his military advisor and says, "I need 30% of my forces to attack China (or whoever)." He can fine-tune these orders by saying "45% of artillery and only 30% of the rest" or adding an additional 50 tanks and 100 fighters, for example. Once the order has been given, a single task force appears on the map. The player then sets about giving it orders such as attack the southern province, capture the city of Hong Kong, don't loose more than 50% casualties, etc. Then the TF automatically sets out to execute those orders. When the TF reaches China, it automatically breaks into any number of necessary divisions and executes the plan issued by the player.
You'll notice I said 'plan.' That's intentional, as the player would basically have an interface to the AI planning module, and would build a plan for it. The AI could then use this plan to execute the orders given, and learn from it as well.
Of course, those masochists among us who enjoy moving 100 units per turn could opt to take control of the invasion rather than designing a plan.