I had this problem too. I have no idea what causes it. I used a respawn room brush, all of the playerstarts had the exact same values for every property, and they were all placed 32 units above the ground and 128 units away from each other and any walls, but the RED players in my map all spawned at the same point. I eventually deleted them all and recreated them and it worked for some reason.
The game also seems to want to use them in a sequential order, but I don't really know how you could influence this or cause it to be random, which could help for things like a deathmatch map. It would also be nice if you could have players spawn as far away from enemies as possible, but I don't think this is possible.