Based on a game I think that the root issue is that there are multiple bottlenecks, unavoidable for the drivers, like turning or entering/leaving lanes, forcing them to slow down to avoid crashing. Not a biggie if there are only a few cars, as they'll be distant enough from each other to allow one to slow down a bit without the following needing to do the same; but once the road is close to the carrying capacity, that has a chain effect:
- A slows down because it'll turn
- B is too close to A, so it slows down to avoid crashing with A
- C is too close to B, so it slows down to avoid crashing with B
- [...]
There are solutions for that, such as building some structure to handle those bottlenecks, but they're often spacious and space is precious in a city. Or alternatively you reduce the amount of cars by discouraging people from using them willy-nilly, with a good mass transport system and making cities not so shitty for pedestrians.
The game in question is OpenTTD. This is easy to test with trains: create some big transport route with multiple trains per rail, then keep adding trains to that route, while watching the time that they take to go from the start to the end. The time will stay roughly constant up to a certain point (the carrying capacity), then each train makes all the others move slower.