The GNU tail can output any amount of data, unlike the Unix version, which uses a fixed size buffer. It has no -r option (print in reverse). Reversing a file is really a different job from printing the end of a file; the BSD tail can only reverse files that are at most as large as its buffer, which is typically 32k. A reliable and more versatile way to reverse files is the GNU tac command.
tail accepts two option formats: the new one, in which numbers are arguments to the option letters, and the old one, in which a `+' or `-' and optional number precede any option letters.
If a number (`N') starts with a `+', tail begins printing with the Nth item from the start of each file, instead of from the end.