the NetGroup.sendToNearest()/sendToNeighbor()/sendToAllNeighbors() calls are all single-hop.
a NO_ROUTE send result to sendToNearest() means that *that peer* wasn't able to find a next hop to which to send the message. it does not (and cannot) have anything to do with anything farther along the path.
likewise SENT means that the message was *sent* to the next hop. it doesn't mean it was delivered to its ultimate destination (or even *delivered* to the next hop) or that there wasn't some other error farther along the path.
likewise, ERROR means that some error occured at this peer, not anywhere farther along the path.
multi-hop recursive operation, like the format of the messages themselves, is totally up to you the developer.
you would only get NO_ROUTE if every peer in the group (including you) is in the EXACT routing mode and not the NEAREST mode, and the target address was not the exact group address of one of the members of the group (including you).
if you get NO_ROUTE, it's possible that some not-you member of the group cound change from EXACT to NEAREST (which would then be able to accept your message), and there is no event for when that happens. so i suppose a re-try could be worthwhile. however, in normal operation, if you're attempting to do recursive routing, every peer will always be in NEAREST mode, so NO_ROUTE should never happen. NO_ROUTE only really makes sense if every peer is in EXACT mode and you want to know whether the message was sent.