Behavior varies from one implementation to another and overall system performance can be effected. More importantly, if systems that support UPE are required to process ENV files for non-interactive shells, then it is impossible to write scripts that have predictable behavior. For example, if the ENV file does a set or shift, then the arguments seen by the script will differ than the ones given by the user. Unlike, aliases, functions, and options that are set in the ENV, there is no way for the script to work around these changes. In addition, the standard doesn't specify when a shell will be invoked.
Current implementations vary.
Some implementations will always invoked a new shell. This leads to unpredictable behavior. The current wording is the result of editorial choice that occurred when merging two separately balloted standards. The wording in the standard should be changed to make it clear that for systems that support UPE, ENV is only required to be used for interactive shells. The standard states the behavior for the ENV environment variable, and conforming implementations must conform to this.