Coming in to this late, but...
I've been teaching an applied statistics course using R (for students who know a bit of statistics but no coding), and I've gradually moved away from base and to a tidyverse approach. For me, this is because it makes more sense, and I think it's easier to learn (and to see what you're doing). I gather from what you write that the goal is to get students to do statistics, so I think you want coding that gets in the way as little as possible.
I don't even talk about tidyverse vs base (although I do point out that some things are "base r" later on, so that people don't expect them to react like tibbles).
My reaction to your list of topics is "that's an awful lot to put into one book". I would eg. limit clustering to say one hierarchical and one not (say kmeans), and have a reason why you would use one rather than the other. Otherwise your readers may get overwhelmed.
The packages I use have mostly been around a while. My recollection is that I use
- tidyverse (without talking about the subpackages by name, at least until much later)
- MASS
- car (MASS and car between them do a lot of things like discriminant analysis and MANOVA)
- ggrepel (for labelling points on plots)
- survival and ggsurv (I do survival analysis later on)
- broom
I bring in bits of the tidyverse as I need them: the read_ functions, ggplot, gather/spread, select/filter/mutate/slice, the map functions later on. There is inevitably some data handling that creeps in, and I think my students should see that (I have a lot of "extra" stuff that includes things like that).
You mention ggplot vs base for things like residual plots: I think there's nothing wrong with eg asking students to do
ggplot(fit, aes(x=.fitted, y=.resid)) + geom_point()
because this is no more than a scatterplot of residuals vs fitted values, and I think it's good for students to know that this is what a residual plot is. (I even show broom::augment to make a single data frame containing the data and the regression stuff so that one can easily make a plot of the residuals against an explanatory variable.)
I guess my take is that I want my students to have some tools they can build with (eg. "here is how you make a scatterplot", with "a residual plot is just a scatterplot", so that as long as they know what a residual plot is, they know how to make it).
My random thoughts.