This is all true.. but ABC is a workable option when all the issues are addressed correctly..
I have fixed the many issues (metal wheels the long stopping distances and crucially push pull trains!) with my own home built modules.. I really wish that at least one manufacturer would make something that works properly like this..
I use on track detection in two sections, an approach and a stop block, but crucially if you want to stop at a red you've got to slow down at the amber first! (see the full speed push into red light test for unrealistic emergency stopping!)
The stop section I have in the demo is 45cm and the train is set to stop from the slow approach speed to stop in 35cm, (works with about 50mm precision.) The Approach section does need to be long enough to hold the whole train. (So it is simply from the previous signal..)
my modules are switched from the same DCC address that changes the lights..
(in the video below the left rail is continuous, the right rail is split into 2 sections per signal and there is a right rail bus wire along side)