No, it's fine. When the subprocess is run, execvp should search for it in the *new* environment (the man page for GNU env explicitely states that is the given command is not in the default PATH, it can't be run when env is used with -i). So the environment of the current process must be modified.

And it also allows us to use the setenv and unsetenv functions to modify the environment. This ensures the modifications will be done in the same order than what GNU env does.