Você pode dizer se está em um shell de login usando shopt
:
dennis@lightning:~$ shopt login_shell
login_shell off
Quanto aos benefícios: os shells de login geralmente fazem um pouco mais de inicialização (como configurar variáveis de ambiente e cd'ing em $ HOME) que não são necessários para outros shells. Por outro lado, por padrão, qualquer shell lançado a partir do gui não é um shell de login, então a maioria das pessoas configura seus scripts do shell ( ~/.bashrc
etc) para fazer toda a inicialização para login e não-login. conchas.