Telecom network is a Hierarchical network, technically you can have all logical node functionality in a single box i.e. eNodeB. But assume that all eNodeB have big capability then how much will be the cost as eNodeB are many (in millions) and close to the UE. Also the level of connectivity is required to connect them O(n^2) where n is the number of nodes.
So to reduce the cost we break the functionality and move the functionality step by step away from UE in this way we reduce the cost of implementation drastically and ultimately the call rate. And while the designing any telecom system it is one of the prime factor (along with other i.e. backward compatibility, data-rate, cabling etc).
This has been discussed in detail please check http://tech.queryhome.com/22013/why-we-need-sgw-pgw-separately-in-lte