I re-labelled this issue to focus on geodist().
, as of v4.2 works with the multi-valued capable field: SpatialRecursivePrefixTreeFieldType (RPT for short).
What I previously commented on, regarding a multiValued FieldCache was implemented already in Lucene 4.2 but making geodist() work for RPT as well as LatLonType isn't so much related to that actually.
It'd be a real hack to make geodist() work with RPT, as geodist() internally has very different expectations about how points are obtained per-document, between how LatLonType works and how the Lucene spatial Strategy abstraction works (what's underneath RPT). However, I'm increasingly inclined to think the hack would be worth it from a developer ease-of-use point of view. I'll keep this issue on my TODO-list radar.