There's another way to look at all of this. The LiquidCrystal library is essentially tied to the HD44780 controller and it's instruction set. The displays that are driven by this type of controller are intended to display short messages, typically the status of a device such as a printer. They are not designed to be used as a computer terminal, that is, to display large amounts of text on multiple lines. I'm not saying that no one uses them this way, but it's not what they were intended to do.
I feel that perhaps the LiquidCrystal library itself should be limited to implementing the HD44780 instruction set, one for one, with no embellishments. There could be a separate library or libraries designed handle other cases such as terminal emulation and similar yet different controllers such as those used by New Haven Displays.
There can be limitations imposed by the addition of some of these features to the basic instruction set. For example, the implementation of automatic line wrapping at the end of a line on a 16x2 or 20x2 character wide display means that you can't easily take advantage of storing a long string that includes the 'hidden' character locations for later display by means of shifting.
Don