It's just another special parsing rule. exists and goto are exactly the same, but they are hardly the only three functions that have special parsing rules. map's curlies don't create a hash. print's file handle isn't a function name. And the list goes on.
Comment on Re^3: How to check if a function exists within a package?