I’m not sure what you are expecting but the difference between the two is that by splicing in the value, you have
a compile time generated (non-threadsafe and non-reentrant) array that are shared through multiple runtime execution of the same macro expansion
Which doesn’t seems to be what you want unless you want multiple invocation at runtime to affect each other or you will never use this macro in a function or a local scope.
Your domonstration doesn’t show the difference between generating the array at compile time and runtime. You should only do this if you really know what it is doing. Trying things and observing something that seems to work without understanding/checking the document is one of the major reason why people write code/packages that breaks easily due to changes in base. (It’s unlikely that this particular behavior will break but it’s a bad habit to do so.)