I assume the question refers to the error on the parameter estimates. To assess the linear relationship between two variables x and y we use linear regression to estimate the two parameters intercept and slope.
It is easy to demonstrate that the last two options are identical, because during linear regression we minimize the sum of squared residuals which in this particular case amounts to the same as averaging all y at a particular x value.
However, there is a slight difference between the first option and the last two. We have the same number of data points or measurements, but in the first case we sample y at more x locations; in the second case we sample at any particular x value more often.
The following R code simulates the first and second scenario.
for (i in 1:1e3) {
#1000 different values of x, get a single y for each x
x<-runif(1e3);
noise<-rnorm(length(x),sd=0.1);
y<-x+noise;
p1<-rbind(p1,as.array(lm(y~x)$coeff));
#100 different values of x, run 10 experiments for each x
x_rep<-rep(runif(1e2),times=1e1);
noise<-rnorm(length(x_rep),sd=0.1);
y_rep<-x_rep+noise;
p2<-rbind(p2,as.array(lm(y_rep~x_rep)$coeff));
};
# differences between standard deviations of intercepts and slopes
apply(p1,2,sd)[[1]]-apply(p2,2,sd)[[1]]
apply(p1,2,sd)[[2]]-apply(p2,2,sd)[[2]]
The for loop repeats the two scenarios many times, running linear regression each time. At the end we calculate the standard deviation of intercept and slope across repeats. The first scenario might be slightly better as its standard deviation seems to be consistently smaller.