I believe that AI traffic is controlled by junctions, not signals.
Signals show if the track ahead is free or if it is terminated by another signal or portal. AI drivers move from one junction to another. As the maximum radius size for junction trigger is 500 meters only, AI drivers see only few junctions. They don't understand concept of a block and there is no need for it, because Trainz default engine does not provide one and implementing it by a script would mess up the simulator completely. A small station with 4 load/unload tracks, capable of servicing trains up to 500 meters long would typically have entering signals at both ends separated by distance of about 1500 meters. No AI driver can "see" what is the status of the junction at the other end. So, signals act like proxies to junctions, but they are not in charge.
Despite this limitation, signaled track has number of advantages when driving in AI mode:
- It allows dispatching more than one train along bi-directional line. Without signals, the entire map is like a single, gigantic block, managing which can be unpredictable.
- It allows terminating end of track. If end of track is unprotected by a signal, AI driver may attempt to drive forward and derail the train.
- It allows to set the stop point before junction. I usually place a signal 100 meters before junction in main tracks. If for some reason AI driver will not apply break on time, there is still some distance left.
I am pretty sure there are many other good reasons, of which I can't think right now. Generally, you should know limitations of AI driver and signal your route accordingly.