I tend to have data with inherent structure, such as multiple samples per patient, multiple measurements per sample and the like.
In that situation, the statistically independent unit is typically the patient rather than the row of the data matrix. (In some cases, independence is even more complicated, with multiple top-level sources of variance.)
While I can easily bootstrap patients (or more general: set up a resampling procedure so that statistical independence is obeyed*) the analytical c.i. calculations I've met so far assume statistical independence at the row level. I.e., they do not accomodate more complex real-life data structure.
It's not that I would speak against using analytical formulations of variance (though I'd recommend to closely check the "small print" of the respective method) - I just don't meet nice data that would allow me to use them...
However, if your data meets the requirements of the analytical/parametric calculation, I'd expect it to have more power than bootstrapping.
What I do use is e.g. binomial c.i.s for proportions like sensitivity, specificity or the predictive values with patient number as sample size. Often, I can show that model instability is negligible compared to this, and I thus get a sensible approximation. (And the result is often anyways so wide that it does a good job serving as warning not to overinterprete the results...)
Sometimes I use this also as back-of-the-envelope calculation before experiments start: the c.i. won't get any better than that - if that is not satisfactory, more patients are needed right from the beginning.
Mixed models that describe the underlying structure for the prediction error may be a way here, but I haven't seen any papers applying this so far. It is, however, an approach that I'm looking into.
I have a sneaking suspicion that situations where the variance on the error estimate can sensibly be approximated as stemming from a single source are actually very rare (and my educated guess is that this is where patient-to-patient variance dominates everything and if that's the case with the final error estimate, it is rarely of practical use).
Of course, one may still sum the contributions of various sources of error into one total variance - but also there, analytical calculation would need to account for the data structure and the corresponding sources of variance.
*Since I typically also work with high-dimensional data, I anyways have to set up such splitting procedures to generate suitable test data to produce the generalization error estimates: the fanciest variance estimator is of no use if my validation procedure has a (large) optimistic bias. Also keep in mind that optimistically biased test results on classification tasks often lead to optimistically biased (too narrow) variance estimates as well.
Update: back of the envelope calculations
Since I don't use F1, I'll outline mostly what I do for sensitivity (or analogously specificity). Sensitivity is the (observed) fraction of correctly predicted tested cases of the positive class, and we can thus use binomial confidence intervals. The width of these depends on the denominator, i.e. the number of tested cases of the positive class, and on the true value of the sensitivity (with maximum width for 50 % sens and minimum width for 0 and 100 % sens).
For the minimum confidence interval width, we can use the rule of 3: assuming we's observe no errors, the 95 % c.i. for sensitivity would be roughy ranging from 1 to $1 - \frac{3}{n}$
However, we can also calculate minimum and maximum c.i. width depending on the number of tested positive cases before any experimental results are available:
... and compare that to the the requirements of the application.
(One can also set up calculation to estimate reasonable sample sizes based on expected performance and application requirements. One scenario I've been using is specifying for an application situation "super nice", "OK" and "not really acceptable" performance. If for the discussed sample size "super nice" performance couldn't be reliably distinguished from "not really acceptable", sample size is insufficient)
To get guesstimates for other measures that are not simply an observed fraction of a pre-specified number of test cases (such as F1), you could either start with the variance of the binomially distributed simple fractions and do error propagation, or set up simulations (which would be quite similar to bootstrapping).