i agree that functions which are equivalent to posix should also have equivalent behaviour. but for any other functions that we make up, we also get to make up how they behave.
Yes, that's why I asked if posix says anything about "existence" on a conceptual level. Imo all the test functions Stdio.{exist,is_dir,is_file,is_link} are higher level wrappers designed to be convenient. Afaik they don't have counterparts in posix at all, which makes it a bit meaningless to talk about "posix compliance" for them.
When it comes to functions mapping to posix calls then it's file_stat we're talking about. It already got a flag for lstat behavior, and I don't propose to change that. I don't think there's any use adding such a flag to Stdio.exist too; one can just use file_stat directly instead then.