If you look at the code for replicate:
> replicate
function (n, expr, simplify = TRUE)
sapply(integer(n), eval.parent(substitute(function(...) expr)),
simplify = simplify)
You see that the function is evaluated in the parent frame, where the ... from your calling function no longer exists.