then a subprocess that checked for FOO wouldn't find the variable whereas
export FOO=bar
would allow the subprocess to find it.
But if FOO has already been defined as an environment variable, then FOO=bar will modify the value of that environment variable.
For example:
FOO=one # Not an environment variable export FOO # Now FOO is an environment variable FOO=two # Update the environment variable, so sub processes will see $FOO = ""two""
Older shells didn't support the export FOO=bar syntax; you had to write FOO=bar; export FOO."