Pete, as discussed on IM and posted here so we can coordinate what needs to be done:
The wiki includes Facelets manually into the facelet tree when a plugin is encountered during page rendering. This is done in two phases, through a ComponentHandler when the facelet tree is build and through a custom component that renders the HTML for the tree manually. This seems to work fine visually, and the view tree looks OK.
However, if such an included facelet contains a form, on postback of this form the tree is rebuild during RENDER RESPONSE and any invalid component from the earlier VALIDATIONS phase is lost. So we never see entered invalid values in the form again. This can be tested with the "user comment" form on the wiki.
The interesting thing here is that it works perfectly fine for the plugin settings forms, you can see those if you edit a document, and enable the preview and plugin settings checkboxes. These forms are much more complicated than the "user comment" form, so I haven't touched them to find out why it works in that case. The trivial "user comment" form should be easier to debug...