I'm at a loss as to why the word 'P*ki' is offensive. Surely, it's simply a contraction of the word 'Pakistani' in the same way that 'Brit' is a contraction of word 'British'?
Colloquial English is littered with examples of multi-syllable words that are contracted or truncated for verbal expediency. For example, my best friend is called David, but I almost never call him this. It's Dave. Similarly, another friend of mine is called Darryll (yes, the spelling is correct...) but everyone calls her Daz.
It's why we call Australians, Aussies; people from Manchester, Mancs; romantic comedies, rom-coms; Jennifer Lopez, J-Lo; etc, etc.
The problem with the word 'P*ki' is not the word itself; it is because it has all too often been prefaced or suffixed with an insulting swear word. But it is the insulting swear word that causes the offence, not the truncated description of the assumed ancestral geographical origin of the person in question.
Truncating, foreshortening, or contracting a word can never be insulting in itself unless the person in question is determined to take offence no matter what.