¿Por qué esta función devuelve un valor (propio)?

el código de:Genio cómo repetir una cadena N veces como una matriz de cadenasGenio cómo repetir una cadena N veces como una matriz de cadenas

def repeatwithsep (e: string, n: int, separator: string): string
    var elen = e.length;
    var slen = separator.length;
    var a = new StringBuilder.sized ((elen * n) + (slen * (n - 1)) + 1);
    for var i = 0 to (n - 1)
        if i != 0
            a.append_len (separator, slen)
        a.append_len (e, elen)
    return (owned) a.str

var a es una variable local, cuandoa sale del alcance, será destruido. por qué esta función

volver (propiedad) a.str

Cuál es la diferencia entre

volver a.str

volver (propiedad) a.str

¿Cuál es el beneficio de (propiedad)

Respuestas a la pregunta(1)

Su respuesta a la pregunta