The moment some poor slob of a beginner tries to refactor any of those closures into a "normal" function, they're going to get beat over the head by the borrow checker.
Yes, I know why they're required in Rust. And it makes sense once you know Rust well. But a beginner isn't likely to understand why they can't refactor a closure into a function in Rust without a whole lot of clone().
Coding "examples" for Rust need to stop using that closure style--especially in "beginner" code.
Oops. The borrow checker is going to beat you over the head. And beginners aren't likely to understand that it isn't their fault.
Rust needs to figure out a way to do GUIs ergonomically without requiring closures.