Member/2 deterministic how?

For I wrote this unusual code:

member_flash(Elem, Lst) :-
    bagof(Elem, member(Elem, Lst), Elems),
    member(Elem, Elems).

How/why is the following query in swi-prolog 8.4.3 succeeding without a choicepoint? It is of course not using memberchk/2

?- member_flash(3, [1,2,3,1,2]).

Interactively, the equivalent code does leave a choicepoint:

?- Lst = [1,2,3,1,2], bagof(Elem, member(Elem, Lst), Elems), member(3, Elems).
Lst = Elems, Elems = [1,2,3,1,2] ;

To answer my own question - I was being silly.

The Elem in bagof/3 would already be unified with 3, in the predicate. As trace/0 shows.