In Reality mode, the SELECT statement operates as described. In any other mode, if an active select list is present it ignores any file variable or dynamic array specified and makes the active select list available. If you specify an index, however, the list is created from that index.
In Reality mode, the default SELECT list is local to the current context. In any other mode, the default SELECT list is global. This means that it is possible to use a PERFORM statement to generate a new default SELECT list. The READNEXT statement has access to this global list; when the current list is exhausted, a PERFORM statement will make a new list available.