I personally don't see how you could completely avoid this without some kind of fixed regions, unless you required people to do some kind of an "@user Hey..." for every message so that you would know if you share the same sphere with the destination user. This makes it more tedious and less fun, though, plus it takes away the whole idea of multicasting.
Another nice aspect of keeping it strictly distance-based is that it makes it simpler to scale - all persons within a geographic region are able to see only other people within that region, so within limits you can run separate backend instances as required.
And of course there are all sorts of potential growth directions by allowing communities (e.g. "Students at XYZU and people within 1 mile" or "Students at XYZU who are within 1 mile").