TL;DRAbility to define "producer" and "consumer" station priorities.
This outlines the general direction. I expect to have some discussion here on improvements and potential problems that could arise.
Note that this feature may not have been considered before because it doesn't make sense without train limits.
What ?The proposition is to add 2 independent priority values to each station. "consumer priority" and "producer priority". They should default to the same value (say 0). They could be togglable and disabled by default, if disabled then use the default value. They could be circuit controlled but it doesn't seem essential.
1. consumer priority
Whenever a train looks for a station named C to path to it considers all the stations named C in order of descending values of "consumer priority" (i.e. higher priority served first). If two priorities are equal then the order is implementation defined. This would have observable effects when there is shortage of trains going to C - only the stations with highest priority will be served.
2. producer priority
Let L be the list of all trains trying to leave (before pathing) any station named C at any given moment towards any station named P (in other words, all trains currently potentially competing for a destination). The trains from the list L shall be processed in order of decreasing "producer priority" of stations where they are stationed. If two priorities are equal then the order is implementation defined. This would have observable effects when destinations are saturated with trains - trains from stations with lower priorities will not be dispatched.
Why ?"consumer priority" may aid in reducing the risk of running of out resources at places critical for base operation, for example power stations. Currently the solutions not involving global circuit networks or mods like TSM/LTN are either to have dedicated redundant lines for critical places, or using 3-item schedules that first visit prioritized stations. These solutions are not ideal because they reduce the throughput and increase rail traffic.
"producer priority" is essential for handling byproducts. This is not as much of a problem in vanilla, where only oil processing can be considered to have [avoidable] byproducts, but is a very real problem with mods like bob's, angel's or pyanodon's (they are more or less impossible to play comfortably without either TSM or LTN) where byproduct recycling is critical. Not prioritizing byproducts can result in increased resource voiding or even deadlocks/blackouts. Currently the only way to prioritize byproducts over the rail without having a global circuit network (or a mod like TSM/LTN) is to have dedicated reloading stations that use pumps/splitters to prioritize one input over the other. This approach creates a choke point for all resources of a given type as they have to be funneled to a reloading station for priority management - doesn't scale. Some more distributed variations like for example doing the priority splitting at endpoints by having two consumer stations for each resource wherever it's needed are possible and do scale, but in the worst case they result in twice the amount of stations and a lot of buffered resources.
Mods like TSM/LTN would continue to have functionalities important to a small set of people, but vanilla would allow easy and intuitive railway management sufficient even for the most complicated mods.