So if I understand correctly 'node' contains all the home towns in a given radius? In which case would the following do what you want?
START u=node(5),town=node:geom('withinDistance:[17.3,78.3,25.0]')
MATCH town<-[:hometown]-o
WITH u, o
MATCH (u)-[:hometown]->()<-[:hometown]-(o)
RETURN o
I see Peter has answered on the mailing list. So actually my assumption was wrong, 'node' represents users which means this is the answer:
START u=node(5),o=node:geom('withinDistance:[17.3,78.3,25.0]')
MATCH (u)-[:hometown]->()<-[:hometown]-(o)
RETURN o