$(file) offers the ability to write files which saves one from tricks involving $(shell). Calling $(shell) is very slow indeed in some makefiles.
$(shell cat filename) is also often used to read files into variables.
There isn't much reason why $(file <) shouldn't read a file though is there? It would have the additional benefit of being platform independent.
I don't currently have permission to offer code but the implementation of $(file) should easily accomodate this: