Overloading of hidden friends by differences only in (mutually exclusive) requires-clauses: legal or an ODR-violation?

From over#dcl-1,

Two function declarations of the same name refer to the same function if they are in the same scope and have equivalent parameter declarations ([over.load]) and equivalent ([temp.over.link]) trailing requires-clauses, if any ([dcl.decl]).

[Note 1: Since a constraint-expression is an unevaluated operand, equivalence compares the expressions without evaluating them.
[Example 1:
template<int I> concept C = true;
template<typename T> struct A {
void f() requires C<42>; // #1
void f() requires true; // OK, different functions
};
— end example]
— end note]

I understand there is 2 different foo (so no ODR violations) because of the differing requires clauses.

I think there is issue with all mentioned compilers to not cover this corner case.