I cannot explain the behaviour. I have 3.81 installed (Linux) which complains wildly when I attempted to have it parse your makefile. This is syntax that I usually rely on when using gmake and needing to do something similar to what it appears you are trying:
dir = a b c d
files = ${dir:%=%:/*}
all:
echo $(files)