I think in the early days, these races might be entertaining.
I can imagine that eventually some kind of optimum strategy may evolve and all the teams use it, and then the cars will all do the same thing and the race will be boring. But in the early days, with people trying different strategies, stuff might happen that is interesting to watch.
I remember back at my first job, we found some kind of game where you wrote a program to control a robot tank in the game, and the whole game was to have matches between people's programs. The programming language was simple and there were APIs for things like "throw out a radar ping", "turn tank", "rotate turret", "fire gun", "check to see if tank is damaged", etc. There were many different strategies available: you could write a tank that never checked if it was being damaged, but just drove around crazily all the time to be hard to lock onto; you could write a tank that, when it got a ping, would try to lock onto that tank and follow it and keep shooting it until it was dead; you could try to write a balanced tank that would check if it was damaged and evade if so, try to figure out where other tanks were and just send shots in that general direction, etc. We had great fun with it for a while, and then one of the developers (not me, sadly) wrote a tank program that was dramatically more effective than all the others. The fun died away when it became "watch Rich's tank destroy your tank and all the others".
The question is whether Rich's program was actually optimum in some sense (did the best possible according to the simple simulation rules) or whether we could have beaten it if we had been more clever. I'm not sure. I wish I had copies of the source code to all the bots from back then, now that I have a lot more experience in software development and I might get more out of the game.
This was years ago and I couldn't tell you what game it was exactly, but there are plenty of programming games around.