¿Por qué los marcos de datos idénticos se vuelven diferentes cuando se cambian los nombres de fila al mismo?

Me he encontrado con un comportamiento extraño al jugar con algunos marcos de datos: cuando creo dos marcos de datos idénticosa,b, luego cambian sus nombres de fila, no salen como idénticos:

rm(list=ls())

a <- data.frame(a=c(1,2,3),b=c(2,3,4))
b <- a
identical(a,b)
#TRUE

identical(rownames(a),rownames(b))
#TRUE

rownames(b) <- rownames(a)

identical(a,b)
#FALSE

¿Alguien puede reproducir / explicar por qué?

Respuestas a la pregunta(1)

Su respuesta a la pregunta