The genius about them, however, is that with all those, we discovered that you could get rid of "goto" afterwards. Which was kind of amazing.
"Await", on the other hand, doesn't remove the need for callbacks -- it just makes it much easier to use them in a lot of common use cases, in a much clearer way. But there are still plenty of valid/necessary uses for callbacks that can't be handled by "await".
Still, you're right that structured control flow statements have obsoleted goto for all but the tiniest edge cases, and so too do I look forward to callbacks suffering a similar fate at the hands of things like await.
https://www.securecoding.cert.org/confluence/display/seccode...
Skeptics should note that the real-world example on that page is from the Linux kernel, where this style of goto is used heavily for error handling.