Mir kommt das
result:=FFilteredStanzprogramm;
ein wenig seltsam vor.
Vor dem Addieren wird die Value vom FFilteredStandprogramm gezogen und zumal ein Clear im Code steht liegt die Vermutung nahe, dass die Liste dieselbe ist.
Aus der Sicht des Compilers ist .Value call an sich identisch.
D.h. würde man die beiden Aufrufe vertauschen müsste 6 rauskommen.