Scott....I like it but I have some questions...
1) When Train-B visits City-C, it seem like Train-B must include each City-C spur in the Train-B route to ensure that cars are placed properly in the OpsPro data base. Otherwise, OpsPro would lose track of where cars are located. I am assuming that this would be a spur visit by Train-B in theory only rather than physically while the City-C switcher (as a stand in for the Train-B loco) would be making the physical visit to the City-C spurs.
2) I am assuming that when multiple trains make pick up & drop off, they must make their visits in the same order they were built since the second train is assuming that all the first train exchanges were made before the second train arrived.?
3) It appears that your approach puts the City-C switcher in a "just-in-time" mode.? When Train-B arrives at City-C, the switcher operator must step into action and make all the spur visits while the Train-B "moves" as each switcher spur action is completed. When the switcher makes the final City-C move, Train-B is free to move to his next destination.
If I am correct on 1, 2 and 3, your suggestion is really good. It means fewer trains to build to get the same job done. It also means I do not need a bunch of sidings as a named location for Train-B to visit.
I can see where this approach will also help me in exchanging cars (via my 0-5-0 switcher) that are logically part of my layout but are physically in off-layout storage racks. I have a lot of off-layout spurs with industries that I need as a companion to some on-layout industries.
Thanks.
Paul D