I don't know if removing the name attribute from the form-element is HTML 4.01 compatible but i think so. This wold be my first proposal.
That makes sense, from the XHTML 1.0 spec:
HTML 4 defined the name attribute for the elements a, applet, form, frame, iframe, img, and map. HTML 4 also introduced the id attribute. Both of these attributes are designed to be used as fragment identifiers. In XML, fragment identifiers are of type ID, and there can only be a single attribute of type ID per element. Therefore, in XHTML 1.0 the idattribute is defined to be of type ID. In order to ensure that XHTML 1.0 documents are well-structured XML documents, XHTML 1.0 documents MUST use the id attribute when defining fragment identifiers on the elements listed above. See the HTML Compatibility Guidelines <http://www.w3.org/TR/xhtml1/#guidelines> for information on ensuring such anchors are backward compatible when serving XHTML documents as media type text/html. Note that in XHTML 1.0, the name attribute of these elements is formally deprecated, and will be removed in a subsequent version of XHTML.
The second is to wrap every hidden field rendered by the jsf-impl with
a div-Element.
While this sounds really weird. Can you quote the HTML spec for this requierement?

