La réponse de PROLOG est tout à fait normale, il faut se dire qu'en PROLOG, il n'y a pas de mémorisation des variables.

2 ?- append([1,2,3,4],[],L).

L = [1,2,3,4]


3 ?- member(5, L).
...