At the basic level every system has it’s internal data model and logical model. Every interface has to bridge and convert those models (for the interfaced elements) across two systems. Then there’s the practical aspects – matching connectivity technologies (or bridging them), matching security patterns, simply determining appropriate error handling, human contacts, etc.
SOA has standardized the interface technologies and provided a wealth of tools to bridge the issues where standards don’t match.
Most organizations are using these tools today, whether intentionally or because the programmers are using recent development tools that use SOA interface technologies by default (the more likely situation).
Interfacing significantly easier naturally leads to more interfacing per application or per software development problem. The result: simplified interfacing but complicated inter-application dependencies and the growth of the accidental integration architecture a.k.a. interface spaghetti.