I want to play devil's advocate here.
Giving a thing a deceptive name in order to cause someone to
use it in preference to some other thing of the same name is
a time-honoured technique, used whenever the system has not
given us enough levels of indirection to play with. For
example, if I want to monitor the internal performance of a
java class library I might substitute the component
com.sun.foo with a similarly-named component of my own; I
might well want to do similar things with documents, perhaps
for very good reasons. For example, I might want to
substitute the intended DTD of a document with a stricter
one.
If this is "wrong", I think you need to distinguish whether
you mean "it does not conform to standard XYZ", or "it is
usually bad engineering practice", or "it is against
European Law", or "it is contrary to ethical norms".
In the case of XML Public Identifiers, I'm not sure the
practice is intrinsically "wrong" on any of these counts; it
is only wrong if it hurts someone.
Mike Kay