Compressed (gzip and bz2) files are automatically decompressed.
Log formats are automatically detected and new log formats can be defined using a JSON file with the appropriate regular expressions.
Multiple log files can be loaded at the same time and shown in a single view with messages being sorted by time.
In addition to those features, lnav has many others: When viewing other parts of the file, the view is locked to only display those lines, but new lines are still be indexed on the fly.
Auto-Scroll - When viewing the bottom of the file, the view is automatically scrolled to show the newest lines.
So, in practice, loading extremely large files (multi-GB) does not work well.
Large files/Limited Loading - lnav does not load the whole file into memory at any one time, but it does need to read through the whole file at startup to do indexing.
Filtering is live, like most things in lnav.
Filtering - The :filter-in and :filter-out commands can be used to set filters so that only lines that match a given regular expression are shown or not-shown, respectively.
Bookmarked lines can also be copied to the clipboard using the c hotkey. You can then move forward/backward through bookmarks using the u/ U hotkeys.
Row Highlighting - You can set bookmarks on lines with the m hotkey.
It has most of the features you're interested in, as well as many others: Take a look at lnav, the Logfile Navigator.