The XML instance you show is schema-valid against the XSD schema you show. So says Xerces J, so says MSV, so says Saxon, and (for what it's worth) so say I.
The XSD support in xmllint is known to be incomplete; it looks like this is one of the incomplete areas.
(Nice job cutting the problem down to a small test case, by the way. Good work!)