Interesting perspective, but I'll point out that I was mostly talking about the Anglosphere / West when pointing out the expat/immigrant disctinction. Often words mean different things in different contexts.
In all honesty, my experience with people correcting my usage could be a back-lash of the very usage of the words as you had described them. The culture there has been using the word 'expatriate' for decades, and there was probably a stigma avoiding using the word as a class designator that manifested itself in a gentle 'scolding' for my usage in the way you described.
I agree with you completely; for these words, context is everything. Intent in usage plays a big part as well.