Pourquoi? Parce que c'est souvent utile pour pouvoir référencer les colonnes de la requête externe dans les sous-requêtes. Il n'y a aucun paramètre que vous pouvez utiliser pour désactiver ce comportement, mais si vous prenez l'habitude d'utiliser des alias, vous devriez éviter la plupart des problèmes :
select * from #table1 t1
where t1.col1 IN
(select t2.col1 from #table2 t2)
Produira une erreur.