The "of" qualifier is (IME) currently used for cases where we don't have "X of Y", so we use "X" of "Y" - position held: "mayor" of "Frederick" rather than "mayor of Frederick"
Once we have the more specific property, we can just switch over and stop using "of" qualifiers.
So would be practice be to use "Mayor" of "Frederick" or to create a new item "Mayor of Frederick" and use that instead?
And if best practice is to use "Mayor of Frederick" why bother with the "of" qualifier in the first place?
The time where the query engine will be ready and fully operational will be a great help and will ease to normalize the datas and we will know which query are the most elegant, which models are resonably general to limit the number of patterns used in Wikidata. This time has not came yet imho.
So at this point we just don't know which is the better way to go about this then? That is fair. For the moment I think then I'll stick with "Mayor" of "City" rather than making new items for each cities mayor. It will be relatively easy for a bot to switch those over later on if we decide the other way is best, whereas it might not be as simple the other way around.
Thank you, Derric Atzrott