It appears that a needed rule of inference was left out of the set of RDF inference rules. I expect that what happened is that when datatypes were added to RDF inference the inference rules from datatype inference were just copied over and the interaction between datatypes and rdf:type was not considered.
The rule that I think need to be added is:
rdfD1a for ddd in D with non-empty value space _:nnn rdf:type ddd .
which comes from the second RDF semantic condition.
Then places where the RDF rules are used need to include this rule.
It appears that a needed rule of inference was left out of the set of RDF inference rules. I expect that what happened is that when datatypes were added to RDF inference the inference rules from datatype inference were just copied over and the interaction between datatypes and rdf:type was not considered.
The rule that I think need to be added is:
rdfD1a for ddd in D with non-empty value space _:nnn rdf:type ddd .
which comes from the second RDF semantic condition.
Then places where the RDF rules are used need to include this rule.