By convention, .bashrc is place where user store the customize configuration for the shell.
These customize configuration can be environment variables, aliases, fancy prompt. With a non-interactive shell, those short of things are meaningless. Moreover, a non-interactive shell can be call in many contexts, you're not sure those environment variables can lead to false negative case, or even security vulnerable.
A closest example is an alias like:
alias cp='cp -i'
Then it hang your non-interactive shell forever.
So the check perform at the top of .bashrc to ensure that we won't get trouble.
Because the shell can be called as non-interactive login shell, so explicitly block sourcing *bashrc make no sense.
When the shell was called as non-interactive login shell, it source /etc/profile, then source the first one found in ~/.bash_profile, ~/.bash_login, and ~/.profile.:
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.
Nothing prevent those files from sourcing .bashrc itself, so doing the check inside .bashrc is safer and make things simple.