Utilizando "..." y "replicar"

En la documentación desapply yreplicate hay una advertencia sobre el uso de...

Ahora, puedo aceptarlo como tal, pero me gustaría entender qué hay detrás. Así que he creado este pequeño ejemplo artificial:

innerfunction<-function(x, extrapar1=0, extrapar2=extrapar1)
{
    cat("x:", x, ", xp1:", extrapar1, ", xp2:", extrapar2, "\n")
}

middlefunction<-function(x,...)
{
    innerfunction(x,...)
}

outerfunction<-function(x, ...)
{
    cat("Run middle function:\n")
    replicate(2, middlefunction(x,...))
    cat("Run inner function:\n")
    replicate(2, innerfunction(x,...))
}

outerfunction(1,2,3)
outerfunction(1,extrapar1=2,3)
outerfunction(1,extrapar1=2,extrapar2=3)

Tal vez he hecho algo obvio horriblemente mal, pero el resultado de esto es bastante molesto. Entonces, ¿alguien puede explicarme por qué, en todas las llamadas anteriores aouterfunction, Obtengo esta salida:

Run middle function:
x: 1 , xp1: 0 , xp2: 0 
x: 1 , xp1: 0 , xp2: 0 
Run inner function:
x: 1 , xp1: 0 , xp2: 0 
x: 1 , xp1: 0 , xp2: 0

Como dije: los documentos parecen advertir sobre esto, pero no veo por qué es así.