Existence checking a file before reading it (especially asynchronously) allows for the existence of the file to change between the two file system calls. Additionally, for integration with Rush multi-phase builds, the sync file contents will not change between phases in the same project, and thus by allowing the content to be passed directly, we can avoid duplicate reads when pnpm-sync will be called after each phase.
As an example, the rushstack repository has phases build and test for all projects.