I just started reading "The calculi of lambda conversion" by Church. 


Church defines functions like: id x = x, and says the domain and range are understood to be as permissible as possible. Permitting even itself, id id = id


In my experience, I've always been told to specify a domain and range with the functions I've defined. And they are usually relatively limited, in contrast to id.


This is the first time I've seen functions with a domain and range this large. Are there uses for functions with wide domains and ranges in mathematical contexts other then logic or lambda calculus?



Relationship of lambda calculus to the rest of math
The question you are trying to ask is "What is a [denotational semantics](https://ncatlab.org/nlab/show/denotational+semantics) for the untyped lambda calculus?"


This is a difficult problem because, as Bjorn Kjos-Hanssen said in his answer, if you try and make variables range over elements of some set $D$ you find that you must have $D \times D \cong D$ and $D^D \cong D$. Unfortunately this implies that $D$ is the singleton set and all lambda terms must represent the same function.


Dana Scott solved the problem of giving a denotational semantics to the untyped calculus with the invention of [domain theory](https://ncatlab.org/nlab/show/domain+theory).


