True, right now no characters are encoded by the constructor, so it would indeed be more symmetrical to add this functionality to a function like quote().
And maybe also a Standards.URI.encoded_uri(void|string charset) which returns an encoded URI directly, to make it a little more convenient.
/.../ I don't see that a partial decode would be particularly useful to anyone.
The thing is that when it comes to "/" inside path segments, at least 95% of all users don't want to bother with them at all, because there's no good way to handle them later on either. A partial decoding then does what the user wants for the input that the user wants to handle, without ambiguity, and the still-encoded slashes might very well be easier to deal with in higher layers (they can e.g. be stored in a filename in an ordinary file system). But a problem is that this approach also affects "%" which is a more sane char in ordinary paths.
Another alternative is to provide a function that throws an error if an encoded "/" is encountered. Normally that'd allow the user to simply ignore the problem.