Ob in *LIBL oder nur in der DFTRDBCOL gesucht wird ist von der NAMING-Einstellung abhängig (über SET OPTION einstellbar):

NAMING=SYS: unqualifizierte Tabellen werden in *LIBL bzw. DFTRDBCOL (wenn <> *NONE) gesucht, Qualifizierung mit "LIB/TABLE".

NAMING=SQL: unqualifizierte Tabellen werden in einer Lib mit Namen des Users gesucht, Qualifizierung mit "LIB.TABLE".

DYNDFTCOL gilt ausschließlich für dynamische SQL's, also SQL's die erst zur Laufzeit erstellt werden (PREPARE/EXECUTE) und nicht bereits zur Compile-Zeit.
Bei SQL-Prozeduren gibt es (normalerweise) keine dynamischen SQL's !

Nun zu ODBC:

Dort gilt das gleiche wie oben !
D.h., die Standarddatensammlung entspricht der DFTRDBCOL (leer = *NONE).

Wird keine Bibliotheksliste eingegeben gilt der Systemwert QUSRLIBL !

NAMING wird in der ODBC-Konfiguration, Registerkarte "Server" eingestellt und (ups, siehe da), die Standardeinstellung ist SQL !

Ändere die Einstellung auf SYS und schon wird über *LIBL gesucht.