Oi, Leonardo, tudo bem?
Então, o rem é equivalente ao valor do font-size computado na raiz do elemento, no root. Ele só irá mudar de tamanho se a font-size do html fizer o mesmo. Portanto, o rem é uma medida relativa, relativa ao font-size do html.
Já o em se refere à medida do elemento pai mais próximo, mais imediato. O que isso pode levar? Ele sai pegando os valores de elementos-pai que estão acima e, portanto, tem mais variações de valores.
Se você usa o rem ele vai te dar mais uma previsibilidade, já que ele tá em primeiro nível, o do HTML; já o em não é tanto por que ele pode se referenciar à vários níveis de elemento-pai. Lembrando que o font-size é uma propriedade herdada.
REM -> propagação previsível
EM -> propagação menos previsível
Espero ter te ajudado :}