The examples I have come from UML relationships. Generally, an association can be between any two types. However, for an Actor, it's restricted to a subset of those.
A specialized connector can also override the behaviour from the parent. A dependency can be between any two NamedElements, but the specialization InterfaceRealization is between a Type and an Interface.
In short, it took an effort to allow a specialized class to override the set of available targets for a relationship. You may not like the result, but it is intentional.
(my emphasis)The initial post says that.

BTW, I agree with the intention ("allow a specialized class to override the set of available targets for a relationship") but not the implementation.
The response from Sparx Support states:
"At each level of inheritance, a single constraint is specified from the list of stereotyped relationships they have. That set is inherited by specialized stereotypes until one of those overrides it." While awaiting the response from both you and Support, it occurred to me that creating a synthetic target such as "inherited.metatypes" could signal that the inherited metatypes should still be allowed (similar to source.metatype.both).
Since :
<stereotypedrelationships>
<stereotypedrelationship stereotype="PrIME::Cmpstn" constraint="PrIME::D;PrIME::E"/>
</stereotypedrelationships>says that a Cmpstn can be between C and either/both D or E...
<stereotypedrelationships>
<stereotypedrelationship stereotype="PrIME::Cmpstn" constraint="inherited.metatypes;PrIME::D;PrIME::E"/>
</stereotypedrelationships>could say that a Cmpstn is additive, for C. (
in this particular case, inherited.metatypes translates to source.metatype.both but is more general, picking up any additional metatypes "along the way".
Thoughts, specifically for Eve, but anyone can "chime in"?
Paolo
[Edit: you could even allow...
<stereotypedrelationships>
<stereotypedrelationship stereotype="PrIME::Cmpstn" constraint="inherited.metatypes;PrIME::D;-PrIME::E"/>
</stereotypedrelationships>To control that even if normally C could compose to E (by inheritance) we want to exclude E from the list!
Just (another) thought]
[Edit2: AS I was dropping off to sleep, I realised that under this syntax:
<stereotypedrelationships>
<stereotypedrelationship stereotype="PrIME::Cmpstn" constraint="-inherited.metatypes;PrIME::D;PrIME::E"/>
</stereotypedrelationships>would suppress the inherited metatypes explicitly.]