I was only able to understand a limited percentage of your question(s), sorry – but let try to answer the following:

> <constraint>
>  <sch:rule context="*[@referringMode eq 'pointer']"> ...
> and it works really well, but is that the magic that I need for restricting Schematron to only the elements which are members of the class that I am defining?

The magic you (and others) want—to refer to members of a class within your ODD—ist not implemented at present. (I vaguely remember Raff struggling with this also, so maybe he could add his use case here, as well?! )

So, the code snippet above probably does what you want, but it is by no means limited to the classSpec its a descendent of. In fact, it is applied to every element (in any namespace) with an attribute @referringMode with the value „pointer“. If this attribute may appear on other elements (than those of your class), you really need to specify those elements in the @context.

Hope that helps