source is an alias to the dot . command and the dot command is a so called special command where POSIX describes that these commands exit the whole non-interactive shell in case that an error occurs.
If you call your command via:
bash test.sh bash does not exit, but when you call:
bash -o posix test.sh it exits. So either your bash has been compiled to be POSIX compliant by default otor you did call a different shell than bash.
See http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_14 for the standard.