Falha na união do prólogo

Estou tentando entender o uso da união (o predicado interno) no Prolog. Em muitos casos, parece falhar quando deve ter sucesso. Parece que tem algo a ver com a ordem dos elementos das listas. Todos os casos abaixo falham (eles retornam com "false".).

?- 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]).

Tudo isso não deveria ser verdade? Qualquer explicação sobre por que esses casos continuam falhando seria muito útil.

Além disso: Por que o abaixo não é bem-sucedido e encontra a lista correta para A?

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