Look at how acceptable C has changed over the years.
In ye old days it was acceptable to just read in any old text without checking bounds, now that is considered harmful.
There are still use cases for hairier parts of C, but that doesn't mean they should be used all the time. Same with goto.
Likewise out of context are the complaints about Dijkstra's statement about BASIC ... while it was hyperbole, it wasn't all that far off at the time, when BASIC variables were a single letter, all global, all statements were numbered, there was no structure, not even named functions.