I disagree that scripting XOR point-and-click. Why can't we manipulate a dataframe using both approaches?
If every tool needs to be available through a GUI, then, as far as I can see, that GUI will either be a burden on creators or so generalized it's no better than tab completion.
df = read_csv(file)
df <- df %>% mutate(log_income = log(income))
# do manipulations in shiny
Shiny(df)
# click "transform" in the top right hand corner...Repeating those manual steps gets boring very quickly, and is also error prone.
You can try and have the GUI generate code, but automatically generated code is awful.