This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
In JSF2, faces-config is no longer mandatory. You can do most configuration that was formerly done in faces-config.xml using Java code annotations, and in particular, that means managed bean and managed property definitions as well as navigation.
However, there are some things that cannot be done in Java code, such as installing the bridge between the JSF EL resolver and Spring Framework's EL resolver. So in cases like that, you'd still need a faces-config.xml to hold that definition.
Like most XML configuration files that support annotation-configurable resources, if a definition appears both in Java code as an annotation and in an XML config file, the XML config file definition takes precedence. This allows you to do "management by exception" where standard components have standard interfaces, but can be overridden when the need arises.
An IDE is no substitute for an Intelligent Developer.