> How do we know that harmful must not compile but that harmless should compile?
If the compiler would keep tabs of which scope a symbol was bound in, it could pass this "birth scope" info on through returns and potential assignments like the one in `select`. Wouldn't write tracking detect these anyway? The rule would then be "Only allow mutation on symbols bound in this proc scope or on ones passed in from another scope as a `mut` parameter".