Why are channels weak?
To simplify reasoning about resource-ownership and resource-allocation costs. All allocated resources are (at worst) owned by the enclosing domain, and die with it. At best, Rust tries to localize resource ownership to a task or even a frame or a single allocation. Since channels can cross all such boundaries — even domains — we did not want the escape of a channel to require the system to keep the receiving-end alive beyond the lifetime of its referent. Besides which, since the receiving-end can’t escape its enclosing task — see previous FAQ — nobody could use such a kept-alive receiving end. It’s as good as dead once the owning task dies.