Why does /etc/shells exist?

That is not entirely true. The file lists valid login shells. Some software uses the file to check if a user is a normal user since those will have valid login shell set in /etc/passwd. When improperly set up, it can cause issues like Normal users not appearing in login manager lists - #2 by aloysius