While I agree that it easily can be abused, I quickly got the hang of it and found it makes a lot of my code more readable. One could think of it as a "then".
my_column %>%
gsub(" ","",.) %>% # Remove whitespace, then...
gsub("[a-zA-Z]+","",.) %>% # Remove letters, then...
strsplit("-") %>% # Split on dashes, then...
lapply(as.numeric) %>% # Make each vector in the list numeric, then...
lapply(mean) # calculate the mean for each list index
The alternatives here would be gigantic function calls that need to be read from the inside out, or multiple variable assignments.