I was considering using explicit page navigation rules in my web app when I came accross this SO question/answer, with the following excerpted from it:
<
You can use either.
Explicit means in xml code, which leads to:
More overhead, specially if conditions are complex (you must match the result from the action method with the expected values).
1b) If there are typos, implicit navigation will probably lead to a 404. Explicit will lead to the wrong page.
You can use tools to draw the rules in a GUI that later generate the faces-config.xml.
At a latter time, changing the rules means changing the XML (you do not need to recompile). If you change your URLs/JSF page names, you won't need to recompile.
I would say using one or the other is a matter of preference, I am quite happy using implicit navigation.