Mathematica, 84 bytes
(x="war""peace")(y="freedom""slavery")(z="ignorance""strength")/#/.x->1/.y->1/.z->1&
Explicación
Más "aritmética" con cuerdas! Como en la respuesta vinculada, esto se basa en el hecho de que puede "multiplicar" cadenas en Mathematica, lo que las dejará sin evaluar (similar a multiplicar dos variables no asignadas x*y), pero que Mathematica aplicará simplificaciones básicas, como cancelar factores en una división.
Así que empezamos mediante el almacenamiento de los tres pares como productos en x, y, z,, respectivamente, y se multiplican a todos juntos:
(x="war""peace")(y="freedom""slavery")(z="ignorance""strength")
Esto evalúa a
"freedom" "ignorance" "peace" "slavery" "strength" "war"
(Mathematica clasifica automáticamente los factores, pero no nos importa el orden).
Dividimos esto por la entrada para eliminar la palabra con la que no queremos .../#, ya que Mathematica cancela los factores. Por ejemplo, si la entrada fuera "peace", terminaríamos con:
"freedom" "ignorance" "slavery" "strength" "war"
Por último, nos deshacemos de los pares que no le interesa, sustituyendo cada una de x, yy zcon 1. Una vez más, la simplificación de Mathematica comienza 1*asiempre a. Esta parte se realiza con:
/.x->1/.y->1/.z->1
Lo bueno es que Mathematica sabe que la multiplicación es Orderlessasí que esto encontrará los dos factores independientemente de si son adyacentes en el producto o no. Solo la palabra que es opuesta a la entrada ya no está emparejada en el producto, por lo que no se eliminará y permanecerá como la única salida.