To reproduce, have one (or multiple) Rail Chain Signals followed by a regular signal with a wired connection. Here, I use a constant combinator as a switch:

The corresponding signal setup:

When the signal is toggled off via the circuit condition, the block signals remain green:

In this case, the signals still stop trains from leaving.
By having the block initially red "naturally" (i.e. with a train) and then disabling the combinator, one can trick the block signals into remaining red as well:

In this situation, a train can still pass, regardless of the seemingly red signal.
Another example: a "railroad crossing". The signals are wired to turn red if the gates detect a player, and the doors shut if the signals detect a train:

As before, if a player approaches the gates, the wired signal becomes red. However, the chain signals remain green.

However, if the intersection is first blocked by a train, "naturally" changing the signals to red:

Then removing the train (not the player) results in the chain signals remaining red. When the player backs away, the wired signal turns green, but the chain signals are frozen as red.

It appears that changes to signals via a circuit condition fail to update the sprites of chain signals monitoring that block. It does, however, change train behavior. I don't know how the game works internally, but if block status is stored by the signals, I would assume a value was mistakenly changed directly instead of via a mutator function that also changes the sprite; unless the train AI just checks the next signal block live or something, in which case I sound like a moron. Hope this helps either way!