You might need to specifically instruct JSF to interpret empty input fields as null as against coercing it to "0" with the context-param
<context-param>
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
<param-value>true</param-value>
</context-param>
Additionally, for a container built on tomcat (JBoss, WSphere etc), you should set the following JVM config property (pretty easy to do within an IDE)
-Dorg.apache.el.parser.COERCE_TO_ZERO=false