Because, again, before the encoded_uri() step it's a valid IRI which needs no further encoding.
So now we are talking about the hypothetic Standards.IRI class again? As an URI, it _does_ need further encoding.
Depending on the situation there are other characters than "/" that you might want to treat specially. "\" for example, would introduce exactly the same ambiguity that you refer to if running on an NT system.
Can't see how it would, since it can never occur unencoded in a URI or IRI.
Um, weren't we discussing how decoding everything except %25 and %2f was supposed to make the user happy somehow? In that case %5c would be decoded into , no?