To mirror the design of CR3 in the textbook calculus, maybe we should adapt the computation of the role hierarchy as follows?
nf:subProp(?R,?T) :- nf:subProp(?R,?S), nf:subProp(?S,?T) .
(i.e., don't require that the first role inclusion is a directSubProp)