In my opinion, to decide whether it's a bug, you shouldn't look at the
implementation of [X] and [X*], but rather at its practical use.
In what cases would you use it, and what do you expect it to return when
your list of lists happens to be one list?
That's what I was trying to do with my example to determine the divisors
of a number, given the prime factorization. (That was a simplified
version of my actual code where I encountered the bug, and lost about
half an hour figuring out what was happening.)
If someone states the current behaviour is correct, I'd like them to
come up with a practical example where [X] or [X*] currently does the
right thing.
But perhaps an even easier way to look at it is:
[X] (@a, @b, @c) is equivalent to @a X @b X @c
[X] (@a, @b) is equivalent to @a X @b
so [X] (@a,) is equivalent to @a
and
[X*] (@a, @b, @c) is equivalent to @a X* @b X* @c
[X*] (@a, @b) is equivalent to @a X* @b
so [X*] (@a,) is equivalent to @a