Hi,
this is not a bug, it's a feature ;-)
Not rendered means that an element is not visible anymore. But the UIComponent can still be required internally (inside the JSF-Tree)
To work as desired, you have to compute the "required"-property:
<xp:inputText id="inputText1">
<xp:this.rendered><![CDATA[#{javascript:viewScope.get("onoff");}]]></xp:this.rendered>
<xp:this.required><![CDATA[#{javascript:!viewScope.get("onoff"); }]]></xp:this.required>
</xp:inputText>
Sven