The memory footprint is there only to provide for stack-space. This makes me wonder, how do coros implement stacks? And don't they suffer effectively from the same problem?
Another point: what if your code calls a library function for which you don't have control over when it yields?