Turns out I'm taking more of a break than I expected.
The basic issue I'm having with adding functionality to pip, is that it looks like I need to have enough information in the Constraint values to generate a Candidate later, but it also looks like the Candidate should be patterned off of an InstallRequirement, and it also looks like that InstallReqirement should come from the non-constraint side of things, to be able to include stuff like the editable flag, and extras.
Thinking about it like that, it's like I need a function that translates existing Candidates to have the desired URL.
Okay, talking about this has pointed me at some functions that might be useful here. I'll look into this more tomorrow, or next week. Whenever.