>
>
> Would it be worth replacing the condition with the equivalent?
> I mean would that help optimizing better some queries when it knows that a
> is (not) nullable or when "a" is more complicated expression?
>
> a <> a : (a IS NULL) AND NULL
> a = a : (a IS NOT NULL) OR NULL
>
I think you're looking for
a IS DISTINCT FROM a
And that will work for cases where a might be null.
I have no opinion about whether adding such a test to the planner is worth
it.