Draft of a proposal for an Explicit Ownership Syntax

It is more for the Explicit Reference Syntax but for declaration with the & (read write ref) sigil you can declare an exclusive reference:

let &exclusive = new Object()
let otherRef = &exclusive //ref error, value has already a mutable refrence
let @readOnlyRef = &ref //ref error, can't ref a reference (in the same scope, you can pass it as arg)

With clone/move you can limit scope access

let obj = /* any */
let obj2 = /* any */
function(clone obj, move obj2) {
 //obj is a clone and can be released with function
 //obj2 is moved and can be released with function
}

If you mix the 2 syntax you can clone the referenced value (clone &exclusive clone the value, not the reference to it).

It already was discuss in the reference topic but if it what you said, you can't return a reference since is need a cast to a non ref type (du to return keyword) which is forbidden by the syntax. If you return a moved object, it is like a new object you've got from the function call since the original object is dereferenced.

As the object is cloned, there is no problem to call method, it is like a new declared object, the same for moved object but I don't see the issue since the object is not re-referenced in another scope. It has no influence on the lifetime.