ich verwende dafür immer TForm.UpdateActions.
Das impliziert aber, dass die Actions im Form liegen und nicht z.B. zentral in einem Datenmodul, wo sie Controls aus mehreren Forms oder Frames referenziert werden.
Als weiteres wird der Update-Aufruf innerhalb von TCustomAction.Execute damit funktionslos.
Die dritte Alternative wäre das TActionList.OnUpdate nicht zu verwenden und stattdessen die Zustandsverwaltung mit TAction.OnUpdate jeder Aktion selbst zu überlassen. Macht das ganze aber noch unübersichtlicher.
Ist wohl Geschmackssache. Ich finde das eigentlich ganz gut wenn die Action autark ist. Man muss halt darauf achten, die Bedingungen nicht on-the-fly zu ermitteln, sondern als Status zu verwalten.