Trade-offs
La firma es una decisión de producto
Un registro de auditoría debe conservar el mensaje cuando la función que lo recibe ya haya terminado. En este caso, fn registrar(mensaje: String) expresa que el registro adquiere el valor.
Una función que solo muestra una vista puede aceptar &str. Así el llamador conserva la propiedad y puede seguir usando el mensaje. Si llamador y receptor necesitan copias independientes, alguien tendrá que construir esa segunda copia de forma explícita.
La elección depende de cuánto debe vivir el dato y quién necesita modificarlo o conservarlo. No se resuelve dando por hecho que prestar es siempre mejor.