H1: A pronoun can't be in the same clause as the name to which it refers (its antecedent).
In both cases, the pronoun is in the same clause as its antecedent, but only one of the sentences is ungrammatical. The solution to this puzzle requires us to look more closely at the hierarchical structure of a sentence like (5)/(6).
Notice that "John('s)", which can be the antecedent for the pronoun, is buried inside the subject of the sentence, which is "John's father". Here's the technical explanation, in parts:
Each node in the tree (NP, N, VP, V, etc.) corresponds to a phrase or word.
A node A c-commands another node B under the following conditions: (i) A does not dominate B and vice versa; (ii) the first node dominating A also dominates B.
H2: A pronoun can't be c-commanded by its antecedent within a single clause.
According to H2, a sentence such as "John thinks that he will win" (where John=he) is good because, even though the antecedent c-commands the pronoun, the pronoun is far enough away from it. A sentence such as "John likes him" (where John=him) is not good because "John" c-commands "him" within one clause. Finally, (5) is good because, even thought the pronoun and antecedent are in the same clause, the antecedent does not c-command the pronoun.
For more information on this or other related topics, (shameless plug alert) sign up for LIN 201Introduction to Language and Linguistics or send me questions by email.
browning@princeton.edu