Because the original validity error allowed the scopes of OT locals to intersect, the compiler now checks the rule not at the declaration time but at the time the scope starts. So, as soon as there are intersecting scopes, it will report the validity error as expected. In the example, if you extend the expression by adding more terms to it, you'll see VUOT errors. It's possible to report the error at both declaration time and potential use time, but then the same error may be reported twice and it's not that easy to get rid of the duplication because the scopes are sometimes not near the declaration. So, do you agree to leave the things as they are now?