TL;DR No dynamic train schedule = only one efficient way to design train routes = no fun
I'm sorry for necroing this, but I've been lurking around for a few years now and this topic has always bothered me. I don't mean any offense, but considering that this looks like a pretty widely wanted feature, I'm slightly flustered as to why there hasn't been any real feedback on it. Anyway, I'd like to chime in with my own opinion of why this is in fact key and necessary functionality.
AFAIK the general "response" to someone asking for dynamic train schedules is "disable the station". I'm sorry, but this is like me asking "How to bake cookies?" and you telling me to bake cakes instead. The two approaches solve completely different problems and to be frank, getting an answer like that can be quite annoying.
First, about station-controlled schedules (the current system). In the most general case, this works if you have exactly 1 train, loading from supply stations that accept ONLY that train, servicing N demand stations, with the whole route covering exactly 1 item. Think 1 train (let's call it Loco X) loading from a station that supplies ONLY iron ONLY to Loco X, delivering ONLY iron, to stations that accept ONLY iron. If all of your routes are structured like this, disabling any single station does not impact other routes.
This works if you have exactly 1 train (or multiple trains that follow the exact same route). The moment you have different trains loading from the same supply station, delivering to different stations, we run into a problem - now we cannot disable the supply station, because one train may need to load, but another may not. For example, if you have Iron Mine 1 supplying Circuit Factory 1 and Weapon Factory 1 via different trains, you cannot disable Iron Mine 1, because the train going to Circuit Factory might be empty, while the one going to Weapon Factory 1 might be full. Now you say, "Why don't you use 1 train then?". That is indeed a solution, although I'm inclined to believe it might lead to fuel waste and/or latency. Except if you replace "Iron Mine 1" by "Refuel Station 1", the whole thing breaks down again, because you cannot disable the station for a single train and now you have to either
- Put a dedicated refuel station on each route (or randomly refuel your trains at stations that have nothing to do with fuel), which is ridiculously inefficient and overcomplicated or
- Make all trains wait a few seconds at Refuel Station 1, which is both inefficient and wasteful.
I'm sure a lot of people have banged their heads in the wall because of this, but the fun is yet to come. Now imagine you are NOT building a 1.21 jigascience per second factory with a gazillion stations and whatnot, but instead you're a casual relatively-new player that wants to just reach the end of the f*****g research tree. You planned a factory that will produce maybe 1-2 science per second, you calculated all the ratios and congratulations, you realize that you need to bus like 10+ different raw resources to create your science. So far so good. But you also notice that while you need 200+ iron/s, you only need around 40 coal/s and stone/s. So, the logical thing to do is to have a dedicated station for iron and merge the coal and stone into a single station to save space. Congratulations, now you've graduated from "I have no idea what I'm doing" to "I want to bake cookies!", except the game doesn't allow you to bake cookies and everyone tells you to bake cakes instead. Now, if you have exactly 1 train going Stone Mine - Coal Mine - Science Factory, you can afford to disable the Science Factory station when not needed. But that means your train will now loop between Stone Mine and Coal Mine, every so often throwing an InsufficientFuelException, while you're desperately trying to figure out how the hell you're gonna manage the Sulphur, Batteries and Lubricant station, which accepts 3 trains because you decided to produce each of those in a different factory so that you don't depend on a single source in case of shortage. The answer? It's impossible, since you cannot disable the supply stations (because they also supply the Circuit Factory and the Weapon Factory), you cannot disable the demand stations (because they accept input from other trains as well) which means you're basically stuck having to refuel your trains every 5 minutes, or implement one of the above "solutions" which requires you to distribute fuel across the whole map.
Again, if the said player were to redesign their whole base so that each item gets its dedicated station, with a dedicated train, they could in theory solve their problem as I outlined above. But the question is - why should they? Factorio is supposed to be a sandbox game, where you decide your own playstyle, yet at its current state the train system either forces you to use a certain pattern, or basically give up all hopes of efficiency.
As for a solution, I believe OP and other people have already proposed multiple times the simplest way - add a "skip-if" or "visit-if" condition to all trains, similar to the "depart-if" condition that already exists, except this one will get evaluated before departure. I've seen people talk about "newbie-friendliness", however I cannot imagine someone having no trouble with the "Leave station if conditions", yet suddenly having no idea what "Skip Station If" means. In fact, compared to understanding (or rather hoping to understand) how fluids work, trains are the easiest thing in the world to grasp. I'm sure there are details to be worked out around this, and I'm sure there will be edge cases that need to be considered - I'm a dev myself and can understand that. However, I think at the very least, this issue deserves a little bit more consideration and/or transparency.
Don't get me wrong, I have around 1000 hours on Factorio precisely because I think the devs had a marvelous idea executed in a very fun and clean fashion. But also because of that, I feel like this issue creates a limitation that, when realized, kills a lot of the fun in the game. From what I've researched, I couldn't find a mod that solves this - if there exists one, then please do let me know. Still, I think it's well-worth considering adding this kind of feature the base game. You can put the very basic implementation - simple and/or conditions - in the game and then let the modding community implement any advanced things.