@microblogc si las exportas aparecen en los subshells, pero sí:
$ A=a
$ echo $A
a
$ bash -c 'echo $A'
$
Si ejecutas tu script con ./script, eso se ejecuta en un subproceso y su entorno se pierde al finalizar. Si lo ejecutas con '. script', se ejecuta en el mismo entorno en el que estás modificándolo.
Recomiendo usar '. script' sólo cuando es estrictamente necesario; precisamente por necesitar afectar al entorno o (muy raramente) por rendimiento.