I'm a bit confused by all of this.
The idea of coroutines existed since the 60's. Then we came up with OOP that tries to combine function + data. And now we abolished this, are back at only functions and are now solving the 'state capture' problem for functions again with: Coroutines?
How does the history of programming paradigms/patterns make any sense? :)
Good article though.