Yes, really.
I stopped using GOTO when I moved beyond GW-Basic some 25 years ago. And I've used plain ol' C for the majority of the code I've written in my life. And yes, FWIW, I've written firmware - Low-level coding, unless done in assembly, doesn't give you a pass on flagrantly breaking the built-in flow control devices of a language.
If you need to resort to a GOTO, you did something wrong before you ever typed your first "#include ...". Simple as that. Yes, you can defend various uses of it, and no, most of them probably don't merit invoking Dijkstra's Wrath. Most of them don't count as outright harmful, just unneccessary. But for every use case you can come up with, I can give you a non-GOTO way of handling every... single... one. As I mentioned, I've re-written plenty of code to remove the GOTOs from it. You just don't need them, period.