Efectivamente, lo que estas haciendo es reservar un bloque de memoria en la linia 9 y guardas la dirección del bloque en la variable nombre. Esta dirección es la que devuelve la función. Si quieres liberar esa memoria bastaría con algo así:
Código:
// Guardamos la dirección de memoria en la varibale "name"
char *name = mi_nombre();
// Trabajamos con la variable "name"
// ...
// liberamos la memoria
free(name);