TL;DR
Send a distinct number of trains (most of the time a single one ) to a (unique) station of if it's really requested.What ?
In a larger base you will have dozens ore outpost and multiple smelter outskirts.Have one train just for each outpost is a waste. And if the train is killed it`s annoying to replace.
So it makes sense that a (iron ore) train can serve multiple "iron outposts".
Therefore you name e.g. all iron outposts with the same name and you enable the station if enough supply is in.
And then the iron train should deliver the iron to the next smelting area that demands iron not just the next one.
So you name all smelting outskirts with the same name e.g. "iron smelting"
Now 2 bad things happen:
1) So if multiple trains are now searching for an "enabled iron outpost" all trains are going there. One gets in and the other one will turn (if you disable the station as one train will be inside.)
same for the smelting outskirts the trains will head to the next one
2) If you want to have a train stacker (in my case a fuel station where trains could wait for a job) trains won't wait there for an enabled station. If all outposts are disabled they skip the station heading to the next on plan.
A common workaround for 2 today is to use a circuit network. Enable the station AND a signal so the trains will have a "circuit condition" causing the to leave the train stacker.
IMHO more intuitive solution for 2:
a new waiting condition for the previous station "wait for next station being enabled".
But still multiple trains will start at the train stacker
Suggestion
So a good idea might that trains have to get a reservation for a train station (for its unique ID not the name that has beed shared with other stations)If the station has a reservation limit of "1", only a single train will head towards that station (even if there might be more trains that have interest in)
For a heavy used station a limit of 1 will not be enough. So you want a configurable number for each train station.
A scenario could be a smelting area with 2 unloading stations each each have a reservation limit of 2 so 4 trains might be in this location.
The default value must be infinite for backward behavior .
If a train has a reservation for eg. a "iron unload" station it will not look for another "iron unload" station.