Via FTP mica prima legge il file e poi lo restituisce.
Pensavo anche funzionasse allo stesso modo.
Via FTP non viene eseguito/richiamato uno script PHP.

In caso di file non leggibile da php, come si farebbe?
Che cosa intendi per "non leggibile da php"?

Oppure per "leggere il file" si intende semplicemente "far vedere" il file da php?
Si intende che il file esiste e l'utente che esegue PHP ha i privilegi necessari per accedervi.