Scheduling/timetabling is a wickedly hard problem, especially in a system like a railway, it's the sort of thing people get Maths and CS PhDs in. The contstraints that you have to solve are complex and interconnected and are part of a bigger network, and you are also trying to please a lot of people with very different (often contradictory) needs.
* stop more or less everywhere
* stop only at larger stations
* even/odd stopping at small stations
The scheduling already seems pretty clever, and that's just from observing as a passenger. I suspect behind the scenes there's a whole lot more to it that's not obvious to someone who is just trying to get to work.For example, in the simple case where the stations are evenly spaced, if train B arrives at station 1 at the same time that train A arrives at station 2, then they will leave at the same time and arrive at stations 3 and 4 respectively at the same time, and never catch up with each other.
However on something like the underground that would complicate the "turn up and go" approach that most people take to the tube if you start skipping different sets of stations on different trains.
It's something that's done, but I'm not sure how well it would scale on the tube if you did it a lot. Each train would need to miss roughly the same number of stops to prevent blockages or you need more passing places. With the small gaps between many tube trains the margin of error for scheduling can be very small.
I think it's one of those things that works, but the advantage for the vast majority of people would be pretty small compared to the complexity and added fragility it would introduce if you tried to do it a lot.
In NY, the expresses are easier to understand because the rules are very simple.