Generators can definitely be used as a tool for control flow - just like arrays. But the thing that actually provides the control flow part is not the generator - just like `async.series` is providing control flow and not the array you pass in. I certainly am not objecting to using generators as one way of modeling flow. The only thing I said was "don't pretend that they somehow replace Promises". Because they don't. The solution I favor is ES7 async functions, which actually is defined in terms of Promises (async abstraction) + spawn (control flow) + generators (model/"data structure").
There's no way to use just generators and nothing else and get async control flow going. That's not how generators work. And `yield` is not "about control flow". It's about lazy sequences. And one of the many possible ways to use lazy sequences is to model control flow, when combined with a control flow library.