"Native siege code uses a system that you always spawn far away from enemies and close to friendly players.
This system doesn't look at entry point id's at all."
http://forums.taleworlds.com/index.php/topic,153565.msg3692216.html#msg3692216
I just stumbled upon this problem today as well (I've noticed it before but never really cared why it happened).
Right so it seems that indeed the spawn locations i used were "correct" but if the game code is not going to care where it spawns people then what is the point of the locations in the first place? There was a follow up post that described someone just ditching the native code and creating something for their maps which just forced random spawn within the locations given but offered no steps on how to do so.
"For GK Siege, all non-native maps use a correction system that checks if a player is going to spawn at a point out of his team's range and switches it to a random correct entry point. I would have included Native maps, but they're tailored to the system that the correction caused players spawning in the wrong places"
Is this something that you need to use python to edit and change or is this something that is not even handled by the scene code and is dependant on the server?
*edit* I also just found this posted which is reassuring lol
"The siege spawn script is an insane beast that no mortal can understand haha. There is a thread in the forge that I put up about a bug in it and there is a fix that Beaver made in the same thread to make sure attackers spawn on attacker entry points. (this doesn't seem to work for bots."
and
"Ok its a bit bizarre but the spawn points are given a score based on how far enemies are away, how high the spawn point is, how close it is to friendlies and so forth."
There is some code also added which from what I can read did fix the vast majority of spawn issues, to add it you need to modify "module_mission_templates"
(try_begin),
(eq, ":player_team", 1), # attacker
(lt, ":entry_no", 32), # If, for some reason, the player ends up in a defender spawn
(store_random_in_range, ":entry_no", 32, 64), # Change to a random attacker spawn
(try_end),
This post seems to contain the most information and work towards a fix -
http://forums.taleworlds.com/index.php/topic,113298.0.html