[1]: https://blog.flowblok.id.au/static/images/shell-startup-actu...
[2]: https://blog.flowblok.id.au/2013-02/shell-startup-scripts.ht...
But some systems treat all terminal emulator windows as login shells by default (e.g MacOS), though you can change that behavior.
Wait... is this the reason why you see profiles that load bashrc?
But for "power users," the ability to alter the experience depending on context is there awaiting your specifics.
The real answer is, read the entire man page to understand.
From the page .bashrc runs in every shell, so long as it is an interactive shell. Bash can be interactive according to a complex system of connected variables, including $PS1, $-, and the arguments passed into bash itself. I found all of this described fully in the Invocation section of the man page, section on interactive shells.
However, profile is loaded when the shell is a login shell. Which profile? Also from Invocation, continuing on from an explanation of when .bashrc is loaded:
> 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.
So, .bash_profile may or may not be loaded, and .profile being loaded or not loaded depends on the existence of those other two files in order.
Your response was lazy but on point. This is the darkest of man page magic, and nobody who hasn't read the manual will know the answer in complete detail. Everyone who has spent any real time in a shell has learned part of this answer.
So if you only have a .profile, it makes sense to source that. If you have one of the bash-specific ones, then it's up to you whether you want to `source` the common .profile one or not.
The only way to do that is to have the file's path explicitly in $ENV, or $BASH_ENV of course...