Possibly, give a way for the guard selection algorithm to reject a restriction?
Sometimes certain proposed restrictions are poor inputs to the guard algorithm, since they cause us to reject every primary guard. It might be good if we gave the guard algorithm an opportunity, in some cases, to reject the restriction and tell the path selection code "no, pick another." Obviously, we can't do this for every guard request, but we can use it to let the guard selection algorithm say "try another intro node" or "try another exit".
nb: It is not 100% clear that this is a good idea. We will need analysis.