I found the analogy to be pretty accurate. It's very easy to shoot yourself in the foot with both goto and inheritance, it's common to see both of them abused, and in either case there are alternatives that generally equivalent but result in cleaner code.
Of course, both of them can also come in handy if you are careful and know what you're doing.
Are you sure he knocked goto? Like inheritance, it has great potential to turn code into spaghetti. Like inheritance, it can be useful if you're careful.
"Are goto’s always bad eventually? Who cares? There’s far bigger problems with gradual change in codebases, let’s think harder about them. My peer reviewers, hold off review until you’ve used what I’ve built and found problems with it. Managers and programmers, wrestle with judgement everyday, the stuff not easily put into rules. Leave the comforting shallows and engage with the abyss."