In the renderkit javadoc of jsf 2.2 spec says this (Rendering Pass Through Attributes):
"... The ResponseWriter must ensure that any pass through attributes are rendered on the outer-most markup element for the component. If there is a pass through attribute with the same name as a renderer specific attribute, the pass through attribute takes precedence. Pass through attributes are rendered as if they were passed to ResponseWriter.writeURIAttribute(). ..." Note here it says "attributes are rendered as if they were passed", instead say "... attributes are encoded and rendered as if ...". Black box testing against RI shows that there is no URI encoding at all in this part, so in this case the best is do the same here. After all, it is resposibility of the one who set the passthrough attribute to do the proper encoding in cases when a URI is provided. There are some simple use cases like the one provided here:
That shows that do any URI encoding here is not wanted.
However, that does not means the attribute should not be encoded as other attributes.