Io temo invece che questo script possa copiare il file $tmp_name del sistema locale sul server ftp $host_ftp, e che questo potrebbe coincidere con quello http oppure no.

Supponendo che entrambi i server condividano la stessa gerarchia di cartelle e file, credo che comunque verrebbe fatta una copia (istruzione copy, che fa sempre una copia a meno che file-origine e file-destinazione coincidano).
Se $tmp_name (e relativo path) saranno diversi da 'nomefile.ext' (e relativo path) ne verrà fatta una copia.

Ho come la sensazione che il lavoro venga fatto 2 volte
Si, il lavoro viene fatto due volte: dal client al server http e poi da php al server ftp.