Because parsing +(1 2 3) requires lookahead. You want to be able to type X into a REPL and get back the value of X, but you can't do that if there is a possibility that an open paren after the X will change its semantics into a function call.
Also, what should be the result of:
(defvar f ...)
(defun f (x) ...)
(length (list f (g x) f(g x)))
?
Also, what should be the result of: