Hi Phon,
When you generate an program, Endevor build a component list with input component and output component. The footprint of each component is recorded in the component list.
When you move the element using move processor, the element, its output component(s) and the component list are moved. The component list with help to answer question When, Who, where, with what ? the element has been generated and its output components built.
Now if you move the output component with footprint=create, you will break the link between the element and it output component, except if you monitor the component list during move. But in this case, the current component list will lose a lot of information(Input component, generate processor, etc...) making the auditability of the element difficult.
The solution would be to use the generate processor for move action, but it may be risky since if some input components are left in the from location you could experience regression issues.
Of course Using package will reduce the risk. Also issue may occurs in case you have some difference between environment at technical level, ie CICS, DB2, etc...
Looking at a standard life cycle where test and validation are generally performed at the development/test stage, I'm not convinced that generating at each environment/stage without testing would be secure. But depending on the organization, why not?
Here was some input, I know not exhaustive but I hope it can enrich the discussion.
Regards,
Ollivier