ACTGRP *NEW verwende ich allerdings auch und vor allem bei Aufrufen aus Menüs heraus (mit einem Wrapper), da viele Programme unter ILE und SQL zu viel Müll hinter sich lassen. *NEW räumt damit halt auf.

Den execute immediate vermeide ich so gut es irgend geht da man häufig die Dynamik gar nicht benötigt.
Deine Archivierung lässt sich genauso einfach mit 2 SQL's erledigen:

exec sql insert into .... select ... from .... where...;
exec sql delete from .... where ....;

Ich denke nicht, dass sich die Where-Klausel, also die Definitition und nicht die Parameterwerte, jedes mal ändern.
Und wenn du denkst, der insert benötigt mehr Informationen als in der Quelle vorhanden, kann man diese ja im Select kalkulieren. Außerdem ist es nicht verboten im Select Parameter zu verwenden.