Warum die IBM das so kompliziert gemacht hat entzieht sich mir.
Da die max. Satzlänge (Puffer) auch mit Varlen die 32K nicht übersteigen darf lohnt eine getrennte Speicherung nicht.
Aus anderen Threads erfährt man ja, dass das Lesen / Kopieren bei Befüllen der Overflow-Area nur zusätzliche Performance kostet.
Und was das Vergleichen angeht, so ist dies Performancemäßig egal ob man Varlen oder Fixed vergleicht da bei ungleicher Länge von Feldern für den Rest immer Blank angenommen wird.
Außerdem hört ein Vergleich immer beim ersten ungleichen Zeichen auf, so dass nie alles verglichen werden muss.

Da die AS/400-DB die Daten nicht komprimiert (wie so manche andere DB), ist eine Speicherung ohne Varlen immer performanter.
Varlen wird nicht MI-mäßig direkt unterstützt sondern muss durch Runtimefunktionen erledigt werden.
Dies merkt man insbesonders bei COBOL, wo man selber für das Befüllen der Längeninformation zuständig ist. Eine Runtimeunterstützung gibt es da nicht.

Wenn man also Varlen benötigt sollte man immer Varlen(Größe des Feldes) verwenden damit erst keine 2. IO-Operation erforderlich wird.

Bei ODBC/OLEDB-Verbindungen hilft Varlen dann etwas, da weniger übertragen wird (man kann auch Komprimierung einschalten). Zusätzlich gibt's bei OLEDB noch eine Einstellung für automatischen RTRIM für Zeichenfelder.