¿Cuándo usar strtr vs str_replace?

Me está costando entender cuándo strtrsería preferible str_replaceo viceversa. Parece que es posible lograr exactamente los mismos resultados usando cualquiera de las funciones, aunque el orden en el que se reemplazan las subcadenas se invierte. Por ejemplo: echo strtr('test string', 'st',...