This broadcasting of `distance` is good.  One might go further treat all the inputs `lat`, `lon` and `distance` on an equal basis and broadcast them all to the highest common shape.  (And raise an exception where this isn't possible).  Having one common direction and several distances is not an outlandish scenario, but in any case this is a minor point.