It's more defensive that that.
If you have uncommitted changes that would be overwritten by switching branches, Git will not allow you to do so. If the changes are not impacted by switching branches, then nothing is stopping you.
Say you have a simple git repository with a single file.
Checkout a new branch and make changes to the contents of this file. Without committing the changes, try to switch back to the original branch. You will be able to do this as the head commit is the same.
Checkout a new branch and make changes to the contents of this file. Commit this change. make another change, but without committing the changes, try to switch back to the original branch. You won't be able to do this.
Since you can't switch branches, discard your changes (git reset --hard head) and then add another file. Without committing this addition, try to switch branches, you will be able to do this.