Does it seem right that both of those bracket types are acceptable ?
The manual states both bracket types are acceptable. I haven't looked into any history behind it, though.
And for those wondering about the different assignments operators in GNU make, the := is equivalent to assignment operators in most languages in that variables are evaluated at the time of assignment. Make's = operator defers evaluation until use, which is why Rob's case hit the recursion error. More details are in the linked manual chapter (which I only just read so this is all new to me).