Auf Grund der Reihenfolge der Aufrufe und Schnittstellen passiert doch folgendes:

BEFORE INSERT/UPDATE
After-Immage kann geändert werden, da erst danach der Insert ausgeführt wird.

AFTER INSERT/UPDATE
After-Immage kann zwar geändert werden, hat aber keine Auswirkungen mehr. Eigentlich nur sinnvoll um zusätzliche Aktionen auszuführen (Insert/Update anderer Dateien)

Was die Kommunikation/Nicht-Kommunikation angeht, so hast du nur bedingt Recht:
Satzpuffer geben ihre veränderten Inhalte natürlich nicht zurück, aber du kannst natürlich über *LDA o.ä. Informationen austauschen.
Zusätzlich besteht noch die Möglichkeit Abbruch-Meldungen zu senden (ESC-Nachrichten) z.b. über QMHSNDPM-API (SNDPGMMSG) um die Aktion abzubrechen.
Dies macht natürlich nur bei BEFORE-Triggern Sinn, da die Aktion ja sonst schon erledigt ist.
Ausserdem funktionieren ESC-NAchrichten auch bei ODBC, während *LDA da wohl wenig effektiv ist.

Ausserdem, wofür macht man denn Trigger ?
Um Funktionen unabhängig von den Programmen die sie auslösen auszuführen. Eine spezifische Kommunikation (ausser eben ESC-Nachrichten) macht da wenig Sinn, da Trigger ja auch z.B. per STRSQL, STRQMQRY, REXX, UPDDTA usw. ausgelöst werden.