@dalias I do not see how this relates to [non-]transitivity. What would be the hypothetical third struct that would be compatible with exactly one of pthread_mutex_t and mtx_t?
Generally speaking, do you have an example that illustrates non-transitivity of compatibility relation that does not involve unprototyped function type?