MyFaces emits some warning when <s:validateForm> is used on a page:
UIValidateForm doesn't render any output and therefore implements the encode*() methods with empty method bodies. The rendererType property has to be null for this methods to be used (direct implementation model for rendering components).
The problem with UIValidateForm is that it is a subclass of UIInput. According to 18.104.22.168 the default value of the rendererType property for UIInput is javax.faces.Text. As UIValidateForm doesn't overwrite getRendererType() MyFaces uses the default value and therefore searches for a renderer for the component.