Zend certified PHP/Magento developer

Environment variables bash and systemd

I am still confused about environment variables in linux, even after reading arch wiki, different articles etc.

First big point is that there seems to be actually two sets of environment variables for bash and systemd. I don’t understand why that is. I read that there are ways to sync them, but I don’t know if that is actually good, since it’s not designed that way.

Second, looking at bash alone, my understanding is ~/.bash_profile is read at login and other terminals later on inherit stuff from there. ~/.bashrc on the other hand is only sourced for terminals later on. So envvars should go to bash_profile.
But then I see that often bashrc is sourced by bash_profile. And I wonder why in this case one should have any bashrc at all.

I really would like to get this right.