Das kannst du bei Native-IO ja so machen, aber bei SQL geht das leider nicht.
Der SQL-Optimizer öffnet eine beliebige LF als Index immer Input, so dass aufgerufene Programme dann eben die Probleme bekommen.
Die PF wird ebenso Input geöffnet, nur bei FOR UPDATE dann eben IO um einen Lock zu platzieren.

Bei Brain/Infor gibt es auch einige CLP's die auf Grund SHARE(*YES) erst mal reihenweise OPNDBF .. OPTION(*ALL) machen, da die das Problem selber nicht in den Griff bekommen haben.