Neither do I All choices have pros and cons. If you want to know , don’t start the variable with an underscore. That is at least a simple rule and flexible enough to get what you want. I think I consider the above a feature.
Interestingly SWI-Prolog sometimes prefers a longer representation,
for common Prolog terms among answer substitutions:
/* SWI-Prolog 9.1.17 */
?- L = [a,b|L].
L = [a, b|L].
?- R = [a,b,a,b|R].
R = [a, b, a, b|R].
?- L = [a,b|L], R = [a,b,a,b|R].
L = R, R = [a, b, a, b|R].
But then we might ask whether this is a bug or feature,
some spill over from a kind of unrelated term:
/* SWI-Prolog 9.1.17 */
?- set_prolog_flag(toplevel_print_anon, false).
true.
?- L = [a,b|L], _R = [a,b,a,b|_R].
L = [a, b, a, b|_R].
L is suddenty related to _R, although the Prolog term L was
only defined in terms of the Prolog term L itself.