It's really simple. If you live in a county for x number of years and gain a passport that says you are Italian, or American, Or Spanish (you get the point) and if you can travel around the world with that and if you can are subject to country x's culture, language, taxes, politics and life then playing for the national team of x is no different.
And I can't understand this "if player x is not from country A, not B, then he does not love country B as much as country A" .....this argument is flawed. First of all you don't know how much said player loves a country. Look at fans here for example. A lot of people have no Italian roots, yet they love the Azzurri more than they love their own teams. second, most players these days are professionals. They want to play well for whatever team they play.
this argument about a player playing for for team B because he got rejected by team A is also flawed. Players do not get paid for representing their national team (at least not in the big teams) they do it for love, pride and personal glory. If Amauri decides to play for Italy it's because he wants the best for himself, which naturally would mean helping whatever team he plays for win cups. So how can this be bad for Italy if a good player helps them win?
Also I do find this argument of "the only reason player x plays for country A is because he got rejected by country B so he should not play there" really stupid. Hey maybe if I an employer and the next time a really good potential employee comes my way I should not hire him even though he is great, because he wants to join only because he got rejected by another company.
Maybe I should not go out with girls because the only reason they would go out with me is because they could not date Brad Pitt