Welchen Namen du dir da ausdenkst spielt keine Rolle.
*NEW wird dann gerne verwendet, wenn man sich nicht sicher ist, dass auch alles zu gemacht wird, was aufgerufene Programme mit *CALLER so hinterlassen und das eigene Programm auf jeden Fall neu initialisiert wird. Allerdings würde da ebenso ein *INLR=*ON ja schon reichen.

Wiederum muss man ebenso sehen, ob dieses Programm u.U. wiederum von woanders aufgerufen wird, usw. usf.
Und für Serviceprogramme gilt i.d.R., wie Dieter ja beschreibt, dass diese ja einen Service bereitstellen und u.U. Fehlercodes zurückgeben. Demnach sollten diese niemals Commit/Rollback machen, da ein Service ja immer einen Aufrufer benötigt.

Ein weiteres Problem bei deinem Beispiel ist u.U., dass STRCMTCTL erst bei der Ausführung des 1. SQL's in einer ACTGRP gestartet wird. Die reine Definition per Option dient nur dem Compiler und generiert keinen Code (siehe Spool).