Creating this bug report since I have not been able to create a working implementation yet, and perhaps my looking into this will inspire others thoughts...
POSIX-1.2024 adds the following SYNOPSIS for 'tail' [1]: tail [-f] [-c number|-n number] [file] tail -r [-n number] [file] Where the description for '-r' is: Copy the lines in reverse order (last line first). If -n is specified, that many lines of the file, starting with the last line, shall be copied. If -n is not specified, every line of the input file shall be copied. In a simple implementation of 'tail', one that allocates an array to store each line in memory, this would be easy to implement. However, the Coreutils version reads the file in BUFSIZE/getpagesize() chunks and then prints, repeating until completed. Therefore, we cannot just modify the existing code to swap lines in memory. Collin [1] https://pubs.opengroup.org/onlinepubs/9799919799/utilities/tail.html