Possible design motivations:
- separation of concerns, good encapsulation
- re-use of existing code or programs
- etc.
I agree, it seems like a strange idea to make an asynchronous call and then wait for it to finish. But there are a lot of shell scripts and programs around that do exactly that: fork a bunch of child processes and then wait for them to terminate.
We really need to know more about what these guys are trying to accomplish before we can say whether it's the most appropriate design for them to use.