JSF often doesn't work well for login/loginfail, welcome, and other container-dispatched webpages. Actual behaviour seems to depend on the vendor and version of the appserver, but often these pages are dispatched directly by the server and don't go through the FacesServlet (Struts users have a similar problem).
The workaround is typically to make the welcome page be an HTML page that contains a redirect to the JSF page.
An IDE is no substitute for an Intelligent Developer.
Joined: Feb 12, 2013
I decided to punt and completely rewrote it from a clean project.
I believe I did everything the same but it now works.