TL;DR
Chain signals should take the train length into consideration when determining their color.What ?
Currently a chain signal allows a train to pass when the next signal along the path allows the train to pass (recursively till they hit a non-chain signal) and only reserve that next block. Instead the check should be if they can reserve a large enough stretch of rails for the train in question to fit into.In the above the the red circled signal is wrong for trains longer than 2 (locomotive + cargo wagon) as longer trains might end up stopped while still on the crossing. If a LCCC train approaches the green circled chain signal then the game should not just reserve the next block after the crossing but should reserve two blocks because both are needed to fit a LCCC train. It would be like the red circled signal only exists for LC trains.
Why ?
Setting signals correctly is hard enough for most users and it is easy to make a segment too small for the trains used, especially when adding more rails to an existing setup when expanding. This then leads to trains stopping while still on a crossing and causing random deadlocks when things get congested. This is really hard to detect unless it happens because most of the time it will work, until it doesn't.When increasing the length of trains this also means hat each and every rail crossing has to be examined and potentially needs to be re-signaled to match the new train length.
When using trains of different length the chain signals must be placed in such a way to always accommodate the longest train, which is inefficient for the shorter trains. There is currently no way to make it efficient for both short and long trains. With most trains being short (after ore and plate haulers desired train length quickly drop off) this means the rail network is inefficient for most trains. For large bases ore haulers with 8 or 16 cargo wagons aren't uncommon while you would never use that for rocket control modules for example. The difference of signal requirements for a LLLLCCCCCCCCCCCCCCCC train and a LC train are completely different. One would have to place train stops in the main base too far apart to be practical to correctly signal for LLLLCCCCCCCCCCCCCCCC trains everywhere or use only chain signals inside the base. Both are not desirable. And placing signals with smaller blocks inside the base is catastrophic if a ore hauler wanders into the main base, maybe because the game decided it should go to an ore smelter across from the base at some point.
The proposed change causes no change in behavior for a correctly signaled rail network. The change would prevent many cases of bad signal placement where segments are left too short (either from the start or due to adding longer trains later in the game). It would allow placing signals more efficiently for shorter trains without breaking the network for large trains.
I considered asking for an option to configure chain signals like the above but I believe this should be the default and only behavior.