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