At a technical level there are significant performance advantages to be gained by caching and other features, but at a social level it makes the definition of new interfaces simpler and allows them to change over time without disrupting the architecture as a whole.