Obviously, if you give one player an advantage, the other player(s) will get a disadvantage, and it is unlikely that every player will be satisfied with one or another solution.
As this ongoing discussion shows, the spawning process is not (yet) ideal, and I think the reason is that spawn points are too attractive to players who aim for easy frags. A possible solution should therefore make it less attractive to linger around spawn points.
Giving the spawned player good weapons can lead to other problems, I see that.
Personally, I do not like the idea of invincibility, I think it just delays the problems. What you basically get are glowing players wandering around, clearly indicating they just spawned and are easy targets when the glowing stops.
I like the idea mentioned some time before, which is to make the spawned player invisible (not inviNCible) for a few seconds.
I thought about that and I would take that even further:
For a few seconds after spawning, the server does not process the data you produce and does not send you data from the ongoing match. During this time you can do anything like normal (jump with laser, pick up power-ups). After this time communication with the server continues, and you continue playing, and appear the other players, from where and how you are (basically like a lag).
The advantage I see in this solution is that the spawn point becomes a spawn field, and where someone spawn becomes (more) unpredictable, thus making the spawn locations less attractive to wait for easy frags. And the spawned player would not get the advantage of seeing the other players and being able to surprise them with an attack right after becoming visible.