If the object exists, it returns it.
If the object does not exist, it returns false, which is also cached. The point being that we don't want to check X times whether a file doesn't exist when we already knew it doesn't. (check is_dir/filetype, that one is nasty)