Careful where you draw your analogies. The sourcing of the
.bashrc can be dangerous in the sense that if a variable is being added to you'll get into the situation where something like this can occur:
That's why it's generally a good practice to logout and log back in when fundamental changes are made to low level environment files such as
Being added to or removed from Unix groups should also be viewed as a major change, requiring a logout/login.
You can get some access, at least in a single shell, by also doing one of these 3 operations with respect to the Unix group changing showing up:
su - <user>
The 3rd method will work, but it will require you to blindly change your self to a group that doesn't show up yet in your existing environment, and will then make your primary group this new group, which may not be what you want.
If you take a look at the man page, credentials you'll see why child processes cannot have changes made via
usermod immediately reflected in a real-time way:
A child process created by fork(2) inherits copies of its parent's
user and groups IDs. During an execve(2), a process's real user and
group ID and supplementary group IDs are preserved; the effective and
saved set IDs may be changed, as described in execve(2).