Using LCD with multiple shields...no pins left

liudr:
Besides, if you ever want to fully use your ethershield, with the SD card, you will need the SD card library, at the cost of 1.5KB of arduino's 2KB RAM. You will find it much better to not use any more libraries such as an LCD library written by anyone.

While intelligent backpacks can make some things much easier to implement,
and potentially provide really nice capabilities like scrolling, and menus.
I don't think that it is a given that not using a LCD library is "better".

Cost:
Intelligent backpacks will cost more than directly connecting pins to the LCD
and typically cost more than simple interfaces like a shift register or i2c.

RAM usage:
I haven't looked closely at the RAM usage of the LCD libraries vs using HardwareSerial but it isn't obvious
that a LCD library would use more ram than the HardwareSerial buffers now that both TX and RX are
interrupt driven. HardwareSerial uses 128 bytes. I'm guessing that the LCD library will use less RAM.

CPU load:
Consider the worst case CPU load when sending a full LCD (20x4) of characters.
If using FM's library and 2wire mode with a SR, each character will use around 75us of time for
a total of around 6ms of lost CPU time to fully refresh the entire display.

If using a serial interface at 19200 the first 64 characters get buffered in HardwareSerial
then HardwareSerial will wait for room for the remaining 16 characters to be transfered
to the backpack. At 19200, 16 characters will take a little over 8ms.
If the backpack runs at 9600, then it jumps to 16ms.

LCD refresh rate:
WIth the SR interface, when the LCD library returns after 6ms, the full display has been updated.
The 2wire SR interface can update the 20x4 display around 167 times per second.

With an async serial interface at 19200, the full 20x4 display can be updated
about 25 times per second.

It always comes down to trade offs.
Cost vs Features vs convenience, vs timing, vs code size vs RAM usage.
I don't believe that there is an exact "best" single answer since there are a number of factors involved.
The choice can vary depending on the needs of the project and developer.

--- bill