SE-0296: async/await

You can always refactor away the need for a defer if you were to actually hit a case where this is importer.

Perhaps, but I don't think it fits well with the goals of the proposal. It means having potential suspension points that are somewhat arbitrary, e.g., at every try and return where there is such a defer, you would have an implicit potential suspension point.

You would have a type that can only ever be inside an async, never put into any type with a non-async deinit (e.g., you couldn't create an array of such types). No, this isn't a restriction that can be lifted: it is fundamental to the model.

Doug