Regarding the FacesContext that is available during application initialization, we need some language in the spec about how it is cleaned up. Otherwise, it can leak into the initialization thread of another application and allow one WAR to see the context of another WAR.
Also, we need some language saying that FacesContext.getCurrentInstance() should always return null except when:
A) We are in the context of a servlet request, or
B) We are receiving a PostConstructApplicationEvent
See http://java.net/jira/browse/JAVASERVERFACES-2436 for full details and an application that recreates the issues.