Last week I made my carrier ants smarter, but they felt more stupid than before! This created a design-code dilemma: How optimal should the ants be while transporting resources? How much should I let the player manually control the flow of resources between trails?

Take this very simple graph containing two trails, T1 and T2. On T1, node A needs water and seeds. Node E, on T2, can produce water, but it needs an ant to do so.
One of my game's premises is that players plan paths and production chains, but they don't manage ants. Ants are currently bound to a trail and answer the needs of that specific trail. So, in this example, node A, also requesting seeds, will have a free ant (at C) assigned to a seed pickup at B and a promised delivery to A. This was working well.
Now, if the player creates a second path (T2) to get water from E to A and B, D becomes a transfer point, where the player requests ants and water so they are available for both T1 and T2. It works, but it is micromanagement.
Is this too much micromanagement? Does it add to my core mechanic? Is it fun? My first (bad) instinct was to make the ant go to E directly, trying to keep the "players don't manage ants" premise. But then, if ants are crossing trails by themselves, shouldn't they be able to come back and deliver water from E to A, passing by D?
If I use Dijkstra's algorithm to compute the shortest path between nodes when the topology of the graph changes, and remove the constraint that ants are bound to a trail, the player can then stay focused on path planning and on the production chain of each node.
I opted for removing the micromanagement part and went full ahead with the idea of ants serving the entire graph. Thinking: oh well, this should be simple, and if I decide to block a path because of a lurking spider, the ants would still be able to find an alternative route to deliver the goods.
The story players tell themselves
But wait... now that the ants can reach all the nodes in the graph, suddenly players expect more from the ants! Why? Predictable ants on a single trail were easy to follow. Needs were simpler, and the player's interpretation was simple: if it was too slow, you just add new ants to the trail. But with a full graph and optimized paths, ants now often serve the few closest mounds and can't easily serve the mounds in the outer rings. So shortest path first isn't the answer.
Alright, let's add a round-robin token so that all mounds are served equally. Looking good, now the ants go to the outer mounds for pickups and deliveries. But funny enough, since distances are greater now and ants are more scattered, another issue arises: the needs at the top of the queue on each mound get served first, so the needs further down the list wait forever. This issue existed before, but players didn't see it, because the story they were telling themselves was "I don't have enough ants on my trail". Now, the player's conclusion is different: "Ants are stupid." Which I want to avoid.
So how far should I optimize them?
As a first solution, I added the same round-robin token idea for the needs on each mound, so every need and every mound gets a chance to be served. I kept some optimization (given a free ant, a need and a mound, what is the shortest route this ant can do to deliver the goods?), and so far it seems believable. Players can go back to planning, strategizing for the winter and reaching for new mounds and trails.
Am I done? I have spared you all the quirks of what happens when paths change during a delivery or when a node is not accessible anymore, but this is currently working for 100 ants with 10 to 15 mounds. The recalculation of the node-to-node table is fast enough and the story is believable. Yes, yes, I haven't tested it with 1000 ants and 100+ nodes, and I have no plan for a more advanced delivery system (2 resources delivered to 2 different nodes, optimally). It's fine. I usually optimize when a real bottleneck appears (and measured), and I restructure the code when there's a technical need, not before.
What about you? Have you ever automated something to make life easier for the player, only to find they expected even more from it?