It is currently possible to modify a URL in a request by extracting it, modifying it, and putting it back. It would be simpler for the user if request objects could be used as a URL in any relevant function.
Specifically, I think that it would apply for:
url_modify
url_modify_query (this could be a simple call to req_url_query which already calls to url_modify_query)
url_modify_relative (this could be a simple call to url_modify_relative which already calls to url_modify_relative)
url_parse
url_query_parse