As a general rule, ExecutableDataTypes should be avoided whenever possible as they incur an undesired cost and are generally not typically necessary. This is primarily for the special case of trigger types, where state management cannot be avoided (or rather an avoidable design has yet to be formulated).