As a rule of thumb you should make fish the default shell for your terminal emulator and leave bash as the login shell. This will let all the system configuration scripts work just fine.
The only time when POSIX incompatibility still hurts is if your workflow requires you to be source shell snippets.
The only time when POSIX incompatibility still hurts is if your workflow requires you to be source shell snippets.