For bash shells, you will see in the man-page
When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. The --noprofile option may be used when the shell is started to inhibit this behavior.
Unfortunately you'll tend to find that implementation from distro to distro is a little hazier that might be supposed.
So /etc/profile is for any shell you might invoke as a user, and you might well have more than a single shell within a single login session. So putting startx in /etc/profile means you will have multiple instances of the graphical environment running (as you have seen).
In general you
wouldn't put startx in /etc/profile or any of the user facing files i.e. those starting ~ in the above quotation, and particularly so on small systems where resource like RAM are low. They are scenarios where multiple screens are required but even then they are fairly (ever?) implemented by additions to /etc/profile
Usually startx would be started in one of the rc files; those are invoked once on system start-up, so there is only one copy executed. All shells you might then invoke during your work flow are then executed within that single graphical instance. If you look at what raspi-config does when you enable 'auto graphical' then it simple adds an invocation of the ligthtdm script to runlevel 2 (2 being the default level to which the OS boots). Disabling simply removes that link; and the OS is delivered without that link.
raspi-config does is right, your other source (aka some guide) is leading you in the wrong direction. It's often hard to gauge what is an authoritative source for advice but these specific platform forums are perhaps a better place to start than more generic sites since they are more likely to evolve to meet the demands of the hardware, a wide(r)
local knowledge base etc and they are moderated too.
Second question, I had manually enabled auto login for the pi login through some other recipe.
Login is not the same as automatically starting the graphical environment. If you enable startx without auto-login it will present you with a username/password dialogue for you to fill in. So yes, you would have to enable auto-login in addition. How you implement it, via 'some recipe' or another guide is open to choice.
HTH