Returns true when every plain-identifier free variable inside Init remains
live (not moved by value) in the statements that appear between the
candidate let-binding (exclusive) and the substitution site (exclusive).
Returns true when Target is consumed by value in any of the statements.
We detect by-value consumption conservatively: if Target appears as a
plain Expr::Path (bare identifier, no & / &mut / ref prefix) in a
position that syntactically transfers ownership: