In my opinion handle_cast/2 is more in line with the actor model and handle_call/3 is a concession to practicality as it is often necessary to await a result or simply have a request acknowledged. You may find these topic of interest:
To me GenStage seems more reminiscent of Communicating Sequential Processes - though not quite as constraining.