What method does the login shell use to read
It is sourced. The difference between executing and sourcing is explained in this post. The important difference here is that sourcing causes the commands in the sourced file to be run in the current shell. That means that any variables defined in the file will now be available in the shell. To illustrate the difference, try the following:
$ cat foo ## a simple file with a variable definition var="hello" $ chmod +x foo ## make file executable $ ./foo ## execute $ echo "$var" ## var is not set in the parent shell $ . foo ## source $ echo "$var" ## var is now set in the parent shell hello
/etc/profile needs to be able to affect the shell it was read from, it is sourced and not executed.
The shell sources those files.
Doing it in a child process would mean that the shell would not have the variables etc. set in its own environment as they would be set in the child process' environment (these are separate). A child process may not pass its environment back to the parent.