Olá!
Sim, o return só pode ser utilizado dentro de funções e esse é o objetivo dele. A execução de uma função será interrompida quando for encontrada uma instrução "return". O return pode retornar qualquer valor, independente de estar em uma variável, ter sido calculado ou não.
No caso do seu código, o IMC será calculado com base nos parâmetros da função e o resultado será inserido dentro da variável imc. Portanto, ao chamar a função que retorna imc, o valor retornado será o mesmo calculado anteriormente, e dessa vez esse valor será associado a variável imcAlguem.
Exemplo:
function somaDoisNumeros(numero1, numero2) {
var soma = numero1 + numero2;
return soma;
}
//Quando a função acima for chamada, retornará o
//valor da variável soma, que está dentro da função.
var resultado = somaDoisNumeros(2, 3);
console.log(resultado);
//Nesse caso, o console.log exibirá o valor "5" no console do navegador;
Espero ter ajudado. :)