This could be seen as a feature rather than a bug - choosing from a wider pool of nodes means we're more likely to get a successful connection. If so, we should document it, rather than leaving it implicit.
Trac: Milestone: Tor: 0.2.8.x-final to Tor: 0.2.9.x-final
I have moved the base32_encode() call into the if (!service) statement.
I could not move the rend_pk_digest() call into the statement because it's needed by rend_service_get_by_pk_digest() to fill in service which is needed by hs_service_requires_uptime_circ().
These changes have been pushed and I am setting this as needs review.