Fork-join and dataflow models are parallel computing solutions.
Are you suggesting that one should strive to solve concurrency problems with parallel computing approaches?
This is just a nonsense semantic game. Everything gets synchronized or serialized at some point, even if it is hardware that does it.
No they are not. You can easily do concurrency with a fork-join approach on just on thread (no parallel execution). fork-join in the browser with e.g. V8 as the runtime is a good example of that.
I wonder how many years of fork() we had before someone finally had a second core to run things on.
Look up 'forking web server'. It predates common multiprocessors. Why do you think that is? Because it's useful for concurrency even when there is no parallelism.