The reader of the code should not be forced to stumble over a
semantic identity because it is expressed by a syntactic distinction.
The reader's focus should not be directed toward the lexical tokens;
it should be directed toward the structure, but using square brackets
draws the reader's attention unnecessarily to the lexical tokens.
But it is not only about a style. When [x y] means a different thing than (x y) it is a different language construction, with different behavior.
By far, the cleanest Lisp dialect out there is Dylan, and it uses Algol notation, not s-expressions:
http://en.wikipedia.org/wiki/Dylan_%28programming_language%2...