Yeah, but we also want decent performance and even compared to opApply,
coroutines/fibers are slow as molasses in January at the North Pole during the
last Ice Age.

One type of coroutine optimization was mentioned previously on this list:
http://www.digitalmars.com/d/archives/digitalmars/D/Coroutine_s_Communication_70713.html
I'm sure that it's possible to optimize coroutines such that they require less
restoring of the stack, or flattening into inline functions. I'm also going to
guess that this style of optimization won't make it into dmd for a very long
time.
I'd much prefer to quickly write a bug-free coroutine ranges and then go back
and optimize those that show up in the profiler as bottlenecks.