Why does the Swift Compiler make independent cache for each file of project build?

Regarding the log, the Swift Compiler evaluates datatypes for each file. What is the actual reason for such behaviour? Is this intentional? It seems the cache of the evaluator works only for the incremental build scenario.