has a certain well-specified range, range that is not
There’s no problem from a semantic point of view with this. Nothing is “cancelled out” by saying this or is “incompatible” or inconsistent with any other range statements in the ontology, whatever they may be. Say the range is “ClsA” – the intersection of
owl:Thing and ClsA is ClsA. Hence “owl:Thing and ClsA” is equivalent to “ClsA”.
(though certainly included in it). Why is it that Protege turns my emphatically non-QCR into a QCR?
Under the hood, Protege cannot distinguish between the two when the filler is owl:Thing. However, some concrete syntaxes do make a distinction – any RDF based syntax does. Is this distinction important for you?