Perhaps it could be explicitly stated on that page, then? Part of the confusion arises from the semantic differences between SELECT INTO and CREATE TABLE AS SELECT solely as used within PL/pgSQL, which is exacerbated for people coming from a different SQL variant, such as T-SQL. I agree that the documentation is explicit regarding which statements are supported for FOUND, but this would be the explicit enumeration of a case where it is not that has enough overlap with the supported cases as to potentially lead to confusion. I do not think such could possibly detract from the documentation in any way.
PG Doc comments form <noreply@postgresql.org> writes:
> Since I was recently bitten by the fact that CREATE TABLE AS doesn't set the
> PL/pgSQL variable FOUND, it would be nice if that were explicitly noted in
> the documentation. Alternatively, if it COULD set the FOUND variable, that
> would be great, although I realize the difficulty of that when coupled with
> IF NOT EXISTS.
The documentation of FOUND is already quite explicit about which kinds
of statements set it:
https://www.postgresql.org/docs/current/plpgsql-statements.html#PLPGSQL-STATEMENTS-DIAGNOSTICS
I'm disinclined to put notes about PL/pgSQL features into command
reference pages that have nothing to do with PL/pgSQL.
regards, tom lane