From its help: "@FILESEEKL must read each line of the file up to the target line in order to position the pointer, and can therefore cause significant delays if used in a loop or on a large file." This implies forward-only, since moving backwards would require to first determine the current line number, requiring reading the whole file a line at a time, from BOF to the current pointer position to obtain the current line number, calculating the line number of the desired new position, and reading again from BOF to the newly selected line.
A new method to deal with line-oriented files would be to build a hidden array of line pointers, one for every line for small files, one for every 16 or 64 ... lines, as the file is read (or even as the file is opened, or when the first line-mode access is made. or as each physical block is read), and using the array determine how to access a specific line (utilizing the API call underlying @fileseek[], NOT @FILESEEKL[]). The pointer array for every 16th line would be used analogously to the same manner of calculating trigonometric functions in precomputer days - interpolating between tabulated results.