Well that seems to be the functionality, but the docs tell otherwise,
both info and man include the following:
...
-a file
True if file exists.
-b file
True if file exists and is a block special file.
-c file
True if file exists and is a character special file.
-d file
True if file exists and is a directory.
-e file
True if file exists.
-f file
True if file exists and is a regular file.
...
Of course, they both also include documentation about -a being &&. My
suspicion is that -a might be unary-file-test (can't add ! to negate the
condition for example)?? but I haven't tested this... it could just be a
doco bug.