I recently ran into an interesting problem (for reference using Chill's Patchpack (hca7f5804)).
Rather than using direct point to point links for all freight, I decided to try using a bus type topology, using a single train line, onto which feeder services shuttle cargo in either direction from various nodes along the line. In particular, some cargoes fed onto the train line are not directly accepted at any rail stations. As I'm currently near the start of an ECS game, the number of cargoes and the distances between (some) industries is relatively high, but the quantity of cargo to transport is relatively small. So I'm using (at present) a single freight train (with wagons of the various cargoes) to service the line (the line is also used for passengers).
This works quite well with routed cargo, the snag arises when any unrouted freight is generated.
Whilst it is easy to move such cargo onto the rail line (using transfer & leave empty orders), getting it off the line at the correct station is more difficult, as there is not a mechanism for cargo-specific transfer orders. The cargo then just sits on the train indefinitely and effective blocks the line.
I have seen this problem too, playing with FIRS. Fortunately, it goes away. "Unrouted cargo" is only created in the beginning, after some train/truck 'opens' a station for production. After a while, only routed cargo is generated.
There are workarounds:
1. Manually unload trains containing unrouted cargo, by temporarily changing the order for the station to 'unload+no loading' or 'transfer'. The unrouted goods come off. When the trucks arrive, they will pick it up and bring it to the real destination. Could be lots of work though.
2. For a more automatic solution: Set trains to "unload+load" at any stations that may have to transfer unrouted cargo. As all cargo comes off, any waiting truck will pick up. If trucks aren't present, the train will re-load the unrouted cargo - but it will try again and again until the unrouted stuff is gone. This is what I usually do. This wastes time, as the train also unload its routed cargo, and immediately re-loads it. So it pays to remove the 'unload' when there is no more unrouted cargo being sent.
A solution for the developers, would be to always unload "unrouted cargo", if the station is serviced by any other vehicle capable of picking it up. If the other vehicle is present, it will load. If not, the train might load the stuff back, and try again at the next stop. Anyway, the unrouted cargo will eventually reach a destination - without forcing trains to also unload all other cargo.
I've not been able to come up with a genuinely elegant solution, with the possible exception of just disabling unrouted cargo entirely, however this would have other fairly nasty implications.
Nasty how? The cargo should still be generated - but as routed cargo then. Don't wait till trains/transports have made a roundtrip - produce 'routed cargo' much earlier. When the first transport arrives and 'starts production' somewhere, start routing to any accepting destinations that this transport visits. Without waiting for the transport to actually make its first roundtrip. And, a destination don't need to have a industry to be 'accepting', being serviced by another pickup transport would be enough. basically, create the routing graph wihtout the need for unrouted cargo to be shipped around first.