Is there any benefit to double encoding the parameters passed on the state query string? 

Parameters like __provider__=name&__sid__=123 will be encoded and sent on the login url (or callback url for OAuth and OpenId clients) as state=__provider__%3Dname%26__sid__%3D123, why would the key value pairs need to be encoded separately before encoding the whole state parameter?