Wenn ein Objekt mit AUTL gesichert ist sollte kein User (auch *Public) noch zusätzlich explizit erwähnt werden da die AUTL das auflöst.

Dass die Anwendung damit arbeiten kann ist so korrekt da die Programme dann alle mit *OWNER zugreifen.

Deine LF muss auf jeden Fall in eine andere Lib, da die Lib ja mit exclude schon gesperrt ist und der User somit an die Lib schon gar nicht herankommt.
Dann sollte es funktionieren.

Ggf. muss die PF noch mal explizit für *PUBLIC *READ berechtigt werden.