Yet another LiquidCrystal_I2C library

floresta:
As far as the programmer is concerned they are.

My point being that the the LCD is not necessarily processing 3 function set instructions even if the host thinks it is sending 3 by setting up the data lines and strobing E three times.

The LCD may only process 2 function set commands from those 3 strobes of E.
The host is driving the upper data pins (d4 to d7) and possibly the lower d0-d3 pins but not necessarily.
When E is strobed, the LCD pulls in either a nibble using d4-d7 or a full byte using d0-d7 depending on whether it is in 4 bit or 8 bit mode.
If the LCD was in 4 bit mode, there will not be three hd44780 function set instructions processed by the LCD for that sequence.
And that is the point, and why it matters, and why there must be three of these E strobes with the Function set bit pattern on D4-d7 done to get reliably get the LCD back into 8 bit mode and why the first delay after sending the initial instruction nibble is longer than the others.

-- bill