o escopo é global / a variável é compartilhada como você diz ... para que você também o faça eco.
também, se você usar o setx, ele funcionará para a próxima sessão do cmd e para os futuros, porque está no registro., mas o set e o setx não devem ser comparados na discussão do escopo. variáveis de ambiente são geralmente globais. Mas você pode usar setlocal em um arquivo de lote no início e as variáveis definidas lá permanecem locais
C:\DOCUME~1\bob>type n.bat <ENTER>
setlocal
set a=99
C:\DOCUME~1\bob>echo %a% <ENTER>
%a%
C:\DOCUME~1\bob>n <ENTER>
C:\DOCUME~1\bob>setlocal
C:\DOCUME~1\bob>set a=99
C:\DOCUME~1\bob>echo %a% <ENTER>
%a%
C:\DOCUME~1\bob>