i don't think your idea works:
dc:creator --subPropertyOf--> dc:contributor.
That would imply any refinement of dc:creator is automatically
a refinement of contributor.
That is you create the problem you want to have forbidden to happen!
It simply doesn't work that way.
Uniqueness of refinement cannot be forced by decrete but only with
What you say is, we already violated that design principle -