Immigrant: person who's moved to a new country indefinitely
Expat: person who's moved to a different country temporarily
Also a 2nd definition from my personal experience
Expat: a person sent temporarily to another country by their company. Usually they are in $300k+ a year job and their company pays their relocation expenses and their rent.
As someone who has lived abroad for 8 years of my own choice, in other words I don't fit that 2nd definition of "expat", it was an eye opener how the 1% lives because there are entire industries set up to cater to them. Before I lived abroad I never saw that but living abroad all the English magazines target those type 2 expats and are full of ads for services far far beyond anything I could possibly afford. Example: ads for apartments starting at $6k a month to $20k a month plus. So, suddenly I was acutely aware of just how big a different there is.
The term for anyone working outside of their home country is 'migrant worker'. Some migrant workers are called expats. These tend to be rich, at least on a global scale.
Many foreigners come to the US as seasonal farm workers. Almost no one refers to them as, say, "Mexican expats", even though by your definition that's exactly what they are.
While on the other hand, Madonna is one of many Americans who are called "expat" but live overseas and have no plans (or at least no definite plans) to return. There's a long list at https://en.wikipedia.org/wiki/Category:American_expatriates_... if you want to see more.
That said, "expat" is the wrong term for someone who renounced his original citizenship. I guess they should be called "pats" now.
The same is true in Europe. The places in town where North Africans, or Iraq, or Ethiopia live are often called "immigrant communities", not "expat communities." Even when the population has no plans to return, or are even native born.
While on the other hand there are many British people who retire and live the expat life overseas where it's warm and cheap, and don't plan to return to the UK. Or Arthur C. Clark, a British expat in Sri Lanka who had no plans to leave. The Sri Lankan government created the category of resident guest status in 1975 so he could stay.
This strongly suggests that 1) your understanding isn't correct, and 2) there is a social class distinction between "immigrant" and "expat".
Additionally, the term 'immigrant' is much more ambiguous than 'expat'. An American expat is clearly an American citizen living abroad. An American immigrant could either be an American citizen who moved permanently abroad, or a non-American who permanently moved to the United States.
If a US citizen goes to Saudi Arabia for 5 years to work in the oil industry and earn a lot of money, then is that an expat or an immigrant?
If a Mexican citizen goes to the US for 5 years to work as a farm laborer and earn a lot of money, then is that an expat or an immigrant?
If a Cuban left for Miami when Castro came to power, is that an immigrant or an expat? Even after 50 years? For example, quoting http://news.yahoo.com/cuba-expats-america-weigh-return-islan... :
> Cuban expatriates in America, including many who risked their lives to escape the communist island, are torn about whether to return after Havana and Washington formally reestablish ties next year. ... The surprise move, which clears the way for bilateral trade and normal diplomatic relations, also offers unexpected new options for Cuban-American exiles, who once believed that choosing one of the two countries meant forever closing the option of living in the other. ...
That would imply that someone can be an expat without believing there's a chance of returning.
Similarly, http://www.bbc.com/travel/story/20130926-in-search-of-miamis...
> And in 1959, as generations of Cuban expatriates began to settle in Miami following the Cuban Revolution, both the city’s Cuban community and the sandwich thrived.
How do you get generations of expatriates?
My thought is that we don't like Castro, so we focus on how the Cubans "left their home country", so call them expats. While with Haitians, who don't get the same treatment as Cubans, we focus on that they came to the US, and call them immigrants.
Migrant: someone not from here, living not where they were born.
I think you're over thinking it. To Somalians they're just somali expats.
Thought experiment: think about how the article would have felt had it been titled: "Why American immigrants are giving up their passports". I think it would have felt different, and I wonder whether an American reader might have felt slightly insulted by that change.
I'd be interested to know whether other languages/cultures draw that same subtle distinction between "immigrants" and "expats", or whether it's just some vestigial remnant of the UK's colonial past.