Entrambi REPLACE INTO e il ON DUPLICATE KEY l'alternativa suggerita è SQL non standard dalla variante MySQL. Quindi se lo usi dipende da a) se stai usando MySQl eb) se vuoi essere legato a quella variante.
ANSI SQL definisce un MERGE sintassi più standard, se implementata sulla tua piattaforma