>468
スコープから抜けるタイミングでGCは必ず実行されるとは限らないです。Javaではそうです。
GCが実行されないと変数はメモリに残ります。Rubyでも不定ですよね。概ねスクリプト言語はそうです。
C/C++コンパイラは自ら管理する必要があります。管理をミスすればメモリーリークとなります。そうさせない為のGCです。
他の言語でもコンパイラによってはグローバル変数はプロセスが消滅するまで残り実行中に消えません。