Agreed that the term muhajir is not a perfect term. But I wonder what the acceptable alternative should be. The term "Urdu-speaking" is more outrageous than the term muhajir. First of all, not all "muhajirs" are Urdu speaking. Secondly, reality is that all Pakistan can speak/understand Urdu. All other remaining terms are simply abusive.
Even though personally, I call myself Pakistani. But when I want to be specific then there is no better alternative than the term 'muhajir'. Muhajir is a compromise term.
There is something called assimilation, which people are ready to do when they get a foreign passport like kala Altaf did. And thats what people migrating from East Punjab did, who were greater in number than those migrating from UP. What about being called Sindhi, is it derogatory? Uptill 1970 Sindhi and urdu was both taught as compulsory sunjects in Sindh, but, some people through a executive order stopped this.