It's been a while since I've seen the episode, so I suppose I might misremembering but...
IIRC, the law/rule isn't that you can't be a non-Federation citizen and even more so that you can't have non-citizen ancestry, but rather that you have to disclose it and follow the appropriate procedure to be vetted.
No, but he was responsible for lying about his ancestry and illegally bypassing the vetting/sponsorship process that Nog went through later.
It's not xenophobic to insist on honesty in terms of potential security risks from your personnel.
BTW, Saavik is generally accepted as being half-Romulan, which if true would suggest that there is no blanket rule against (part-)Romulans in Starfleet as long as vetting proves that they don't have any hostile connections.