Being an expat myself, I find this a fascinating article by an Australian man who has settled in Switzerland.
...an expat is someone who is working and living temporarily in a foreign country and expects to return home once the mission is completed and does not intend to take a new nationality. I am not here temporarily, and I have taken a new nationality.
The word expat is not used when referring to many of my friends here, though. One, who was born and educated in Switzerland, but holds Portuguese nationality, is an immigrant. His wife, who is American, is an expat.
I'd never considered this before, but why do we call Polish working migrants to the UK immigrants and not expats. Why am I called an expat and not an immigrant?
The language we choose to use makes a world of difference.