How to read HD44780 LCD programmatically

I agree, keep the lib small

the read functions could be conditional with a "simple" #define construct.

something like this is all you need (

// uncomment next line to support LCD read function
//#define SUPPORT_LCD_READ

...

#ifdef SUPPORT_LCD_READ
uint8_t readChar()
{
  uint8_t ch;
  digitalWrite(RWpin, HIGH);

  ...

  digitalWrite(RWpin, LOW); // set back to write mode
  return ch;
}
#endif