This functionality is definitely needed for Swift, and it's good to see this being addressed.
That being said, I don't really like the use of 'take' for this kind of modifier. It feels weird to me that take x would end a variable's lifetime, while passing x to a take parameter wouldn't. Additionally, as Dave Abrahams pointed out on the last thread, function parameters are already described as 'taking': a function of type (Int) -> Void is described as taking an Int.