Thats a lot of added complexity to be able to use column names, and to top it all, the use of non standard evaluation make things very complex when one go a little away from basic EDA.
Well, strictly literately to this case the tidyverse command would be:
mtcars %<>% mutate(pounds = wt / 1000)
Which is obviously simpler, and quite likely what a beginner is actually trying to do.
The real complaint - "tidyverse doesn't let us use variables to name columns!" - is fair enough, following quasiquotation is hard work. If you need that, drop back to base R. However, it is harder to teach because all the common operations (select, filter, etc) will involve some combination of []/[[]] and relatively hard to figure out which one a piece of code is trying to do.
Except for the lucky few who have brains wired to think in terms of arrays and database relations, someone learning the language is unlikely to thank you for that.
compare base R:
Now hadley solution comment: You can now express that sort of thing fairly elegantly with dplyr: Thats a lot of added complexity to be able to use column names, and to top it all, the use of non standard evaluation make things very complex when one go a little away from basic EDA.