I have done static spawns myself using XML (.NET makes it pretty easy, just a few attributes and the XmlSerializer class) as has the author of the GTA Comes Alive mod, as far as I can see.
It definitely produces the "best" results, if you go through all the effort of setting it up. And there's the question of somehow making the spawn points generic so you can use several sets of spawn points for the same thing. Or you'd have to set up spawn points all over the map for each variant of call out you wanted to set up.
I think a better solution would be figuring out how to access the pathfinding/spawn nodes in memory. If you notice, pedestrians don't spawn in the middle of nowhere - there are obviously either zones or individual nodes baked into the map for each area/point where pedestrians can be spawned. Parked cars must be the same way, and I think I remember seeing that you can edit the parked car nodes in map editors for some of the older games. Presumably, the pathfinding nodes on the rode must store the direction they're facing (or is calculated from the position of the next node?) so that the engine can spawn vehicles on the road with peds already driving them. Unfortunately I'm not a good enough programmer/hacker to figure out how to access that data, but maybe somebody with more skills than me can take a crack at it!