The soap 1.2 spec specifically states that the fault "Code" must be one of the 5 values enumerated in the spec. However, CXF uses the code set in the Fault "as is" without any checks. Thus, faults can be returned that are not processable by compliant clients.
Note: soap 1.1 spec allows the fault code to be any qname. This only applies to 1.2.