You made the point in your question: "He calls her 'Princess.'" Princess is the affectionate title that he has given to her. It might even, if he uses it enough, become a proper noun: "John watched as Princess climbed into her mother's lap."
Genius, on the other hand, is not usually used in the same way. It is not, in most households, a term of affection--or at least it wasn't in mine when I was growing up. Actually, I'm fairly sure moron was the term of affection--but I digress.
He simply calls her (or describes her as) a genius. Also, when he calls her princess, an element of individuality is attributed to that (she is, most likely, his only princess). I don't believe that anyone would argue that there is only one genius (the good people at Apple have cheapened the idea of genius to the point where almost anyone can be a genius, in fact). So, saying 'he called her a genius' leaves room for there to be more in the world. It's a bit like saying 'They named him president." There's only one president of their organization--and I can say that with certainty, seeing as I just invented it--so they don't have to say they named him 'a president.'
I hope that was helpful.
Student or Learner