Partiamo spiegando cosa sono rispettivamente em e rem, entrambe fanno riferimento ai pixel e scalano la dimensione dei pixel dipendentemente dallo schermo, la differenza sostanziale di entrambi consiste nel riferimento.
Mentre em è relativo alla dimensione del font più vicino o diretto da cui eredita , rem è solo relativa alla html (root) font-size. Mi piace pensare ad esso come un reset. Se un foglio di stile è costruito in maniera modulare, quindi rem non dovrebbe essere necessario molto spesso, ma può essere utile a volte.
La scelta ricade semplicemente a cosa vogliamo riferirci, al font di un div or paragrafo specifico oppure alla dimensione font base del nostro html