The correct way to solve constraints on links is that we have to add something to ADL, which I have been threatening to do for years
A new AOM type is needed that constrains links such that you can state in the constraint the RM type of the thing the link points to. This new AOM type is needed, because normally there is no way to constrain just a link element to state what kind of thing it points to, unless you make assumptions about the pointer, e.g. that the URI contains the RM type buried inside it. But this is not generally reliable, and is not a safe long term approach.
I must get back to looking at the details of this change. Of course, even if we get it done at the specifications level, it will be some time before tool developers implement the change…