It's misleading to blame the closure issues on the mutability system. The closure issues are caused by Rust having a poorly thought out implementation of closures carried over from ancient versions of the language. It is not necessary for there to be any special cases.

It's a stretch to call the simple existing system confusing. The current `mut` is *clearly* defined as allowing assignment to the variable, and granting inherited mutability. Anyone confused by the current rules is still going to be confused after any changes, because the same inherited vs. internal mutability system will exist.