La unión de Prolog falla

Estoy tratando de entender el uso de la unión (el predicado integrado) en Prolog. En muchos casos parece fallar cuando debería tener éxito. Parece que tiene algo que ver con el orden de los elementos de las listas. Todos los casos siguientes fallan (vuelven con "falso").

?- union([1,2,3],[],[2,3,1]).  
?- union([1,5,3], [1,2], [1,5,3,2]). 
?- union([4,6,2,1], [2], [1,2,4,6]).
?- union([1,2], [], [2,1]).

¿No deberían ser todo esto cierto? Cualquier explicación de por qué estos casos siguen fallando sería muy útil.

Además: ¿Por qué lo siguiente no tiene éxito y encuentra la lista correcta para A?

 ?- union([1,5,3], A, [4,1,5,3,2]).  /** comes back with "fail." */