There is a recommendation to not mix up jsf with html. Background: Then your jsf page can be rendered as something different than html. But as far as I know up till now there are only renderers for html (although you can write your own).
In practice I found it hard to follow this recommendation and ended up mixing html and jsf, e.g. for headings or line breaks I use html.