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