Lifetimes in a function signature aren't just about indicating depends-on relationships — they're also plain old generic parameters and imply all the same stuff that “regular” generic parameters do. For instance, it is always the caller of a function who gets to choose the values of the generics, and the function must be valid for any choice. In this case one can lean on one’s knowledge of generic type parameters to infer something about generic lifetime parameters, but only because lifetimes are indeed generic parameters. Similarly, with HRTB it is clear that what's being expressed is “for all values of this generic parameter, such and such bound holds” which again relies on lifetimes being generic parameters. And of course, if needed you can refer to generic parameters of both kinds within the function body.
In short, since lifetimes are indeed generic parameters, we should embrace and leverage that fact, not try to hide it.