F+O still describes casts and constructor functions in separate
sections: it is not clear that they are completely synonymous with each
other.
For example, it appears that you will get different errors depending on
whether you use a cast or a constructor function.
Constructors should be defined entirely in terms of casts, or vice
versa. If the two cases generate different error codes, implementations
can't treat them as being purely different surface syntax for the same
operation.
Note also my separate comment that the XPath language spec defines error
codes for casting which conflict with the codes defined in F+O.
Michael Kay