You know, I could be snide, and say, “We’ve already invented that — it’s called a train.” :D
But I’ve thought the same, too. If every car on the road is robot-controlled then it changes the problem. Modulo failures, discrete algorithms should behave predictably towards each other, like the unix API philosophy.
It seems hard to get there, though. Even today it’s a PITA to maintain API boundaries in simple libraries, never mind make sure that the new Tesla v12.4 Full Self Driving For Real This Time doesn’t trigger edge cases in Volvo v7.7a Actually Real Self-Driving We Promise.
Can we make software that allows cars to behave as predictably as rail cars, but without the rails? Maybe, but I expect only on limited-access freeways. I’m sure these robot-driven cars will remain incompatible with common road uses cases like pedestrians, cyclists, and children chasing balls.