source is a shell keyword that is supposed to be used like this:
file contains valid shell commands. These shell commands will be executed in the current shell as if typed from the command line. Now,
file does exactly the same.
. alone means "the current working directory" as in
xyz in this directory") or
a/b/./c/./d (which is identical to
. in a filename has a meaning only by convention as in
.foobar which indicates a "hidden" file (not really...) or as in
foobar.pdf, which indicates a file format by the suffix (here
These different meanings cannot be interchanged.