$TEST est définit à l'extérieur d'une fonction donc cela devient logiquement une variable globale et $GLOBALS permet de modifier toutes les globales définies donc rien d'anormal jusque la il me semble.
D'ailleurs, dans le tableau $GLOBALS, ta variables $_GET['TEST'] n'est pas $GLOBALS['TEST'] mais $GLOBALS['_GET']['TEST'].
Comme dit par Sephi-chan, en désactivant "register_globals" tu empêche surtout que lorsque $_GET['bidule'] est définit, une variable $bidule soit créée.
D'ailleurs, dans le tableau $GLOBALS, ta variables $_GET['TEST'] n'est pas $GLOBALS['TEST'] mais $GLOBALS['_GET']['TEST'].
Comme dit par Sephi-chan, en désactivant "register_globals" tu empêche surtout que lorsque $_GET['bidule'] est définit, une variable $bidule soit créée.