El tema es interesante, pero primero que nada comentar algo sobre el decode, y es que acepta hasta 255 parametros, por lo tanto no hay que anidarlo 3 veces.
Código:
select
decode(factor1 ,
'1','Per ruptura',
'2','per previsió',
'3','per rotació',
'Per ruptura')
from dual
El case nace para reemplazar el decode, por lo tanto, es de esperar que evoluciones en futuras versiones, cosa que no va a pasar con del decode, de momento las ventajas que se pueden apreciar son, es ANSI y es fácil de comprender, dado que existe en la mayoría de motores, es decir, que todavía es relativo y a gusto de cada uno.
Nosotros utilizamos mucho el case por tener sistemas que deben funcionar tanto en Oracle como en Sql Server y así la traducción de codigo es más directa.
Saludos