Hello
No, this is not bug. This is expected beharior of search_path setting:
https://www.postgresql.org/docs/current/runtime-config-client.html
> Likewise, the current session's temporary-table schema, pg_temp_nnn, is always searched if it exists. It can be
explicitlylisted in the path by using the alias pg_temp. If it is not listed in the path then it is searched first
psql \d command checks current search_path (by pg_table_is_visible call). You can use \d *.t1 syntax to display tables
withsuch name in all schemas.
regards, Sergei