There is something called "linear logic". In linear logic, assumptions can neither be duplicated nor dropped. Under the Curry-Howard correspondence, it corresponds to linear type theory, where values cannot be duplicated and dropped (it is the same type model that underlies Rust).
If you have linear update procedure, you are not allowed to use the argument of the update procedure anymore. In other words, the resource hasn't been duplicated but the procedure is linear in the resources. The same goes for the C++ move semantics.
As we are allowed to drop the result in Scheme (it is no error and Scheme has a garbage collector), it could be more precise to speak of "affine logic" and "affine type theory". But as it makes no sense to drop the result, the adjective "linear" is pretty well chosen.
Marc