What does Lambda Calculus teach us about data?
You should turn the question around and ask what is not data. After all, code is just more data, is it not?

Perhaps a useful view from a programming point of view is that of a value. Say that in a programming language a value is a piece of information or data which can be stored, passed around as arguments and results of functions, they can be dynamically generated at runtime, etc.

Typical types of values are int, char, bool, various arrays of these, lists, trees, etc. In many languages functions are not values. For instance, in C you cannot pass a function as an argument or return it as a result. (Caveat: a pointer to a function is not a function!) Programming languages in which functions are values are called functional programming languages. Examples include Haskell, OCaml, SML, scheme, racket, javascript, and many others.

We can reformulate "there is no difference beween code and data" as "functions are values". So it really is a design choice as to whether code should be considered data. In functional programming languages this is the case, while in many others it is not.