Do I need to VALIDATE CONSTRAINT? I create a foreign key constraint and know that there are no violations, so I mark it as NOT VALID to skip the check.
From the documentation:

But the database will not assume that the constraint holds for all rows in the table, until it is validated by using the VALIDATE CONSTRAINT option.

It doesn't mention the consequences – not even in the notes –, if there are any at all.
Does it matter if a constraint is not marked as valid forever?
I create a foreign key constraint and know that there are no violations, so I mark it as NOT VALID to skip the check.

Why?
The constraint will be applied to all new data as it is added.
The &quot;not valid&quot; option allows the constraint to exist whilst ignoring any historically-entered, bad data.
If you have no such bad data, then the &quot;not valid&quot; option serves no useful purpose and, indeed, is misleading to anyone else looking at the constraint, who will assume that it's been configured this way to allow for bad data (that isn't there!).