> regardless of any technical definitions you'll find in a textbook
It's the definition of first-class values. You may have your own, but then you need to tell us what you mean first. Communication by redefining established terms is getting painful...
> why people say that functions are first class values
Because you can pass functions, return functions and store functions. That's what "first-class datatype" means.
> You don't have to look up the value of a variable by writing (variable foo), but you do have to use (function foo)
Only if you want to get the function from the function namespace. If the function is already referenced in the value namespace, then you don't have to do it.
> Clojure goes one step further and lets you treat non-functions as if they were functions, by using them in the function positions of expressions.
Which existed long before Clojure in Lisp. For example Lisp Machine Lisp had callable arrays 4 decades ago.
Features like these make it a good write-only language.