Bitte such im Netz mal nach dem Datenblatt vom HD44780 o.ä. da sind die Timings und Transfermodi genau beschrieben.

Nr.1: Das Tempo des Bildaufbaus hängt vom eigentlichen LCD ab, aber auch vom Takt des Contollerchips.

Nr.2: Der 4-Bitmodus ist im Datenblatt erwähnt und funktioniert normalerweise auch, aber der eigentliche Transfer dauert nun doppelt so lange und das kann manchmal sichtbar werden.

Nr.3: Der Vorteil vom 4-bit-Modus ist, das er nur 7 Signale braucht, sonst sind 11 fällig.

Nr. 4: Der Nachteil vom 4-bit-Modus ist, das er nach einem Display-Reset erst aktiviert werden muß. Das Display hat keinen Reset-Anschluß, der steuernde µC üblicherweise keine Ahnung ob das Display vorher schonmal initialisiert war (Reset-Taste oder kurzer Vcc-Einbruch, von dem das Display nix mitbekommen hat). Da hängt sich die Sache dann meist auf, weil der µC den einen Befehl schickt (guck im Datenblatt, wieso), der auf 4-bit umschalten soll, das Display aber noch auf 4-bit eingestellt ist und die zweite Hälfte des Transfers erwartet. Den nächsten Befehl schickt der µC also in zwei Hälften, von denen das Display nun aber die erste Hälfte als Abschluß des vorherigen Transfers ansieht...
Das läßt sich mit einer komplexeren Init-Sequenz aber beheben (das Display ist dabei für den 4-Bit-Modus angeschlossen und der Ablauf recht trickreich, aber es funktioniert in der Praxis 100% zuverlässig!):
a) Display für 8-bit konfigurieren (einmal 4bit senden -> siehe Datenblatt!)
b) Maximalzeit plus 10% Zuschlag abwarten (NICHT das busy-flag lesen!)
c) Display für 8-bit konfigurieren (einmal 4bit senden -> siehe Datenblatt!)
d) Maximalzeit plus 10% Zuschlag abwarten (NICHT das busy-flag lesen!)
e) Display für 8-bit konfigurieren (einmal 4bit senden -> siehe Datenblatt!)
f) Maximalzeit plus 10% Zuschlag abwarten (NICHT das busy-flag lesen!)
g) Display für 4-bit konfigurieren (einmal 4bit senden -> siehe Datenblatt!)
h) Maximalzeit plus 10% Zuschlag abwarten (NICHT das busy-flag lesen!)
i) jetzt ist das Display garantiert im 4bit-Modus und wartet auf die erste Hälfte eines Transfers!

Eventuell kann Schritt h) entfallen, aber ohne habe ich es noch nie probiert. Wichtig ist , das bei jedem dieser Transfers (a, c, e, g) nur 4 bit transferiert werden und danach NICHT das Busy-flag des LCD gelesen wird. Die vier unbenutzten Anschlüsse (D3 bis D0) sind für dieses spezielle Kommando nicht relevant und damit sieht das Display tatsächlich erstmal anständige 8-bit-Transfers. Die beschriebene Init-Sequenz "holt" das Display auch bei einem RESET des steuernden µC zwischen zwei halben Transfers garantiert zurück auf Anfang!!

Wer meint, ich spinne, kann es ja mal selbst ausprobieren. Zumindest spart diese SW-Lösung den extra Transistor samt Portpin um das LCD gewollt "vom Netz" zu nehmen.