If both addresses are listed under the same contact in Gmail, I'm pretty sure it won't do that (I have a friend with both Google and Yahoo addresses and it identifies her correctly). I bet your Gmail contact list has duplicate Johns and that's why Google+ thinks he's two people.