Why do you say it's for data? Doesn't racket use "reader macros" heavily for language syntax, or am I misunderstanding something?
The reader does not know about functions.
Something like
(defun foo (bar) (+ bar 10))
is for the reader just another list. It does not know that the first symbol has to be DEFUN, that the next item needs to be a symbol, that the next item is a list of arguments and that then a sequence of body expressions follows.Something like
(defun (bar) foo + (bar 10))
is also a valid list, but it is not a valid Lisp expression. The reader does not know that.