file_exist fa un controllo solamente sul nome del file oppure controlla proprio l'intero file?
[url=http://www.php.net/file_exists]file_exists
sono quasi certo che si limiti al solo controllo del nome e di certo se ci sono due file uguali con nomi diversi non te li scova.
Per confrontare se due file hanno lo stesso contenuto potresti confrontare il contenuto degli stessi restituito da [url=http://www.php.net/file_get_contents]file_get_contents
Oppure fare una ricerca su google per accorgersi che non è così semplice:
[url=http://www.google.com/search?&q=compare+files+php]compare files php