The only other reason I can think of is that the Object ID of the sim is a copy of the nID. ie. it will contain the most up to date info, and will be written back when the sim leaves the lot or user saves the game.
This is exactly it: If you use "Neighbor's Persondata", it will not return the most up-to-date information. This is particularly pertinent with information that may be subject to change while a sim is on the lot. It is somewhat less necessary, but still good practice, if the information is extremely unlikely to change: A sim's gender is probably a safe attribute to just read from neighbor's persondata without checking for instantiation, because there is nothing in the game that can really change this. Things like skills, enthusiasms, and soforth, however, *ARE* easily subject to change during gameplay and as such you should check to make sure the sim is not already present and possibly altering those attributes.