Two is the best procedure. To understand this, it helps to consider the sources of randomness that are at play when fitting and evaluating a model, all of which contribute to the expected out of sample error you are attempting to estimate:
- The randomness in $Y$ when $X$ is fixed.
- The randomness in the fit classifier due to fluctuations in the data used to train the classifier.
- The randomness in the error of a fixed classifier, due to the evaluation data differing from the training data.
Procedures one and three ignore the second source of randomness. This is important to account for because although in the end you will have to go forth with a fixed set of coefficient estimates, these fixed estimates are sampled from some distribution around the true estimates (which are unknowable). It is best to make sure your estimation of model performance is aware of this.
I think you have understood my uncertainty; I initially thought of using CV for your reason 2, but as I am actually going to use these estimates, from the full model, to make predictions on another data set (with unknown outcome), I thought perhaps the bootstrap might be the way to go.. I must say, I am still struggling with how CV evaluates my initial model coefficients, rather than the modelling procedure.
I think your understanding is pretty good. Cross validation does evaluate your model procedure, not the final model coefficients, but this is usually the best you can do. Deciding between models 1 and 2 in your setup is a decision about model procedure, or possibly more accurately, model complexity. Cross validation will give you an estimate of the out of sample error for both models, and then you can use it to make an appropriate selection. Once selected, you can re-estiamte the parameters on your full data set, and have confidence that you made the correct choice.