Needs to find time to read this more carefully, but on an initial skim it feels like Rust type system is strongly coupling two things very strongly here, the structure of Rust futures, and the scheduling mechanism. I don't think Rust as a language is really alone in this, anything with thread locals will expose the nature of the scheduler, but the Rust type system definitely makes it more obvious.