I feel like it starts off a little bit on the wrong foot by introducing basic types as scalar variables. In reality R has no scalar variables, everything is a vector, list, and scalars are immediately coerced into a vector eg:
> is.vector("a")
[1] TRUE
This might seem like nitpicking but it leads to a world of confusion when programmers used to languages with scalars start trying to use R that way and it took me several months of confusion and weird bugs before I finally clicked and started understanding R better.
Can you give an example where the confusion between a scalar and a length one vector is important? I'm trying to figure out how to better teach R to people familiar with other languages and understanding your stumbling blocks would be v. helpful.
For a strong conceptual grasp of how the language work, I think it is fundamental that students learning R (especially those with a history in other programming languages) understand that there are no scalars in the language. The main argument that I would make for this is that nearly all R functions can operate on vectors with a length grater than one. By understanding that when you send a "scalar" to a function you are actually sending a vector, I believe it is much more conceptually clear that you can, and should, send larger vectors to functions and can receive the expected results. This is in comparison to most other programming languages where it would be necessary to iterate over a list or array in order to operate on each individual element.
For example, if you told somebody familiar with, say, PHP to add 2 to each element in a vector, they would likely break out the oh-so-familiar for loop to iterate over each element and apply the transform. This is completely suboptimal in R, as you could just do vector + 2 and receive the exact same thing.
This isn't quite what you asked for, but I've run into problems where the distinction between scalars and 1x1 matrices was important. iirc, something like
crossprod(y, crossprod(A, y)) * V
where A was nxn, y was nx1, and V was an arbitrary matrix throws an error while
YES. I had to relearn misconceptions about R four, five years down the line but the truth is not widely advertised (that everything in R is actually a vector).