Re: unstructured concurrency
I think you're describing what I call functional parallelism (or decomposition). Separate (heterogeneous), independent functions are each assigned to a thread in order to simplify the code and logic of the application. Rather than cod esome polling loop to determine which thread needs some CPU time, the threads run when they can and coordinate if there is any data sharing needed (e.g., computation thread needs to GUI thread to update display).
Explicit threading methods, OpenMP and TBB all have ways to create threads/tasks executing a function. If everything is spawned from the same process, the Intel threading tools and many others can analyze these applicaitons. When you begin launching separate processes instead of threads, tools probably haven't been developed to work in that environment. (The Intel Cluster Tolls will allow you to analyze several different MPI executables that are launched at the same time.)
It may all be a matter of taste or what kind of programming you're used to. If you start programming with functional decompositions, then data decomposition might seem bizarre and vice versa.