But we have to remember that goto-statements are normal and needed in Assembly languages and cpu likes those.

In KRL,
I program in a way, where IF-statements are describing the special case that is normal, instead of that I would try to trap every single error with number of if-statements. If I have if under each other, in each "if" I add some integer for debugging. This way it is easy to keep track that what condition is not true and I can trigger error for user directly from integer-value.
I have used goto in Quickbasic, Assembly (JZ, JNE for example) and Visual basic. When programming with visual basic (currently excel-macros), there is usefull "on error goto", where goto is necessary part.
In KRL I have never used goto, and never will. Have you heard about KISS-principle: "Keep It Simple Stupid".
So in my opinion goto is sometimes needed, but usually not.
I dont like this either:
IF FALSE THEN
;the code you don't want to run
ENDIF
That makes you think while monitoring with the KCP in the middle of the long code that it is beeing run, but it is not. If you have a lot of lines which you dont need, comment those with ultraedit column mode for example. If you have only couple of lines that might be usefull sometimes, make a boolean variable with definition that variable remembers its value over cold boot and make condition where you can switch parts of the code on or off.