If anything has caused controversy in the COD universe as of late, it's what people refer to as "the spawn system." Much speculation goes on about it, but apart from observable trends, discussion about it veers into speculation and original research. I don't claim to know all the answers, but I've taken a look at the game code in the files for Call of Duty, United Offensive, and Call of Duty 2 and observed a few trends. As far as I can tell, the spawn logic has not dramatically changed; in fact, I would argue that the MW2 spawn system that people argue as "flawed" is really the same system that has been used throughout the series. The only issue there is that the other problems with the game seem to make other things problems that are not problems in themselves.
What we refer to as the "spawn system" really is a colloquialism; it is properly divided into two components: the spawnpoints and the spawn logic. I'll be discussing spawnpoints in this first post.
The spawn points are certain preestablished areas where people can spawn in its radius. These are premarked on the map, and usually located around the edges of the map rather than smack dab in the middle. There are certain pros and cons to this arrangement. If players spawn in the middle, they are much more open to attack, but on the other hand, as a team they have an increased likelihood of escape because the enemy team needs more manpower to envelop them. If players spawn at the edges, they may not be initially more open to attack, but because you're backed into a corner, you run the risk of spawntrapping.
As things go, spawntrapping is nothing new to the series, but it was less prevalent in the first game than it was with all subsequent games, because of decreased damage (especially grenade damage), fewer weapons to choose from (which made sure that every weapon had a very specific niche), and the lack of perks and killstreaks.
So if premarked spawns run the risk of spawntrapping, why not just have it so that people spawn a farther distance from the rest of the enemy team independently? Can't you just disperse them randomly at any point in the map? While an method probably could be written to spawn people freely without premarked spawns, it has far too much bug potential, especially in a 3-D game world where people could conceivably spawn in midair or inaccessible locations.
Not only that, but there's also the potential of telefragging. This is when a player spawns in someone's exact location, causing them to get stuck together. As soon as the game realizes this, it will activate an emergency exception and instantly kill the "outermost" person, i.e. the person that got spawned into. In some games (TF2, Unreal Tournament), it's utilized as a game mechanic, but of course it's out of place in COD. The code and preset spawns are specifically designed to avoid this issue, so it never happens in-game.
The other solution is spawn protection, which is a common mod for many servers. In the context of the current audience though, it runs far too much potential for abuse. People will turtle and kill people while they're spawn protected, and it could very well be used to access areas you're supposed to die at. In addition, it's disappointing for the people who have built up high killstreaks like the AC-130 or the Chopper Gunner, since combat is no longer infantry only. The compromise in this case is the Painkiller deathstreak.
So spawnkilling is the lesser of multiple evils, because if COD is played with even teams, spawn killing would not exist. Game balance is first done from the ideal perspective, then patched as more realistic circumstances move on. The problem with MW2 in this case isn't faulty balance initially; it's the fact that they don't promptly address balance issues that arrive as people play and find new ways to exploit the game. Game balance is a dynamic process; there will never be a state where everything is at perfect balance.