That may indeed explain why it works the way it does, but that doesn't mean it isn't a bug. IMO it certainly is; [X] and [X*] don't work as advertised.
Let me explain how I found this bug. I'm generating a list of divisors for a number. I already have the prime factorization of that number, and a list of all the "prime powers". Examples: 24 = 2³×3¹: ((1, 2, 4, 8), (1, 3)) 42 = 2¹×3¹×7: ((1, 2), (1, 3), (1, 7)) 64 = 2⁶: ((1, 2, 4, 8, 16, 32, 64),) Now it's easy to generate the divisors: > say [X*] ((1, 2, 4, 8), (1, 3)); (1 3 2 6 4 12 8 24) > say [X*] ((1, 2), (1, 3), (1, 7)); (1 7 3 21 2 14 6 42) > say [X*] ((1, 2, 4, 8, 16, 32, 64),) (2097152) Oops...