Consider the following code:
void foo() { { CSomeClass bar; // Some code here... goto label; // and here... } lab
1) Yes. 2) Don't do this.
Elaboration: conceptually, this is no different from leaving a loop via a break. goto, however, is strongly, strongly discouraged. It is almost never necessary to use goto, and any use should be scrutinized to find out what's going on.
break
goto