Difundir con data.frame / tibble con identificadores duplicados

La documentación para tidyr sugiere que la recopilación y la difusión son transitivas, pero el siguiente ejemplo con los datos del "iris" muestra que no lo son, pero no está claro por qué. Cualquier aclaración sería muy apreciada

iris.df = as.data.frame(iris)
long.iris.df = iris.df %>% gather(key = feature.measure, value = size, -Species)
w.iris.df = long.iris.df %>% spread(key = feature.measure, value = size, -Species)

Esperaba que el marco de datos "w.iris.df" fuera el mismo que "iris.df", pero en su lugar recibí el siguiente error:

"Error: identificadores duplicados para filas (1, 2, 3, 4, 5, 6, 7, 8, 9 ..."

Mi pregunta general es cómo revertir una aplicación de "reunir" en este tipo de conjunto de datos.

Respuestas a la pregunta(2)

Su respuesta a la pregunta