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.
Customer surveys are for companies who didn't pay proper attention to begin with.