Probleme mit FOR Schleife

Das liegt an der Art wie in der alten Version set-returning function in der SELECT Liste verwendet werden (und unter anderem ein Grund warum man diese Syntax heute eben nicht mehr verwenden sollte).

Du musst die Spalten der Funktion expandieren:

SELECT (Wertebestimmung(l.dt::date)).*
FROM generate_series(current_date - 6, current_date, interval '1' day) as l(dt);

Wertebestimmung(l.dt::date) liefert für jede Zeile des Ergebnisses einen anonymen “record” mit drei Elementen in einer einzigen Spalte zurück.

Wenn man aber (Wertebestimmung(l.dt::date)).* verwendet, dann werden die Attribute des record in Spalten “expandiert”.
Bei der Syntax mit einem lateral join wird das automatisch gemacht.