La raison en est que lorsqu'une colonne sans alias n'existe pas dans la sous-requête mais existe dans la requête externe, Oracle suppose que vous faites référence à la colonne de la requête externe.
Avec les alias, la requête qui vous pose problème ressemblerait à :
select *
from test_values tv
where tv.tst_id in (select tv.tst_id2
from test_lookup tl
where tl.tst_value = 'findMe');
J'espère que cela rend les choses plus claires ?
Le problème que vous rencontrez est un très bon exemple de la raison pour laquelle vous devez toujours étiqueter vos colonnes avec la table d'où elles proviennent - cela facilite beaucoup la maintenance de la requête pour commencer !