But they're not interchangeable, so they give an person reading the code a strong hint whether it's a array index, function call/grouping, or a code block.
Oh, that's yet another issue: in the context of the above example (which, incidentally, was not merely a list of all kinds of brackets) the meaning of the pair of square brackets is changed from 'array index' to 'lambda'.