This question raises several issues. The bounty will go to an answer which addresses them holistically.
Here\'s a problem I\'ve been playing with.
Here's a simple counterexample showing that your friend-of-a-friend algorithm will sometimes miss neighbors: start with a long straight line of many (at least more than 3*N) equidistantly spaced actors, and gradually bend the line into a circle. If the line is long enough, the actors in it will detect no local change in their neighborhoods; in particular, the actors at the ends won't notice when they meet.
Edit: Actually, I thought of an even simpler counterexample: take two isolated compact clusters of N or more actors each, and send them on a collision course with each other.