It's a phase young programmers go through
When you learn to be a programmer there is a phase where you learn about all those cool things you could do. You learn about OOP, RPCs, functional programming and so on. As you usually only hear about them from the proponents, you think they are all great and the future, and they allow you to build wonderfull castles in the sky. You actually dream about complex data structures residing in cyberspace.
Now when you become more experienced you learn that coding is hard and that every line of code is like uncovering a tile in "Mine Sweeper". So you become more cautious and try to optimize not for complexity, but simplicity. Once you learn about the UNIX-Phlilosophy you will realize that this is one local optimum when it comes to simplicity.
In the past, young programmers used to learn either in BASIC or Pascal, and their first jobs were writing shitty software for Windows. That's where all that bad and never maintained shareware stuff for Windows in the 1990s came from, as well as some business critical applications from that time. So people could make their mistakes where it didn't hurt, and then maybe later learned about unixoid operating systems.
Today young programmers start with Linux right away, so naturally they make their mistakes on that platform. They also want to work on "Open Source" software, as that looks good in their resume. That's why those projects now get overrun by inexperienced programmers wanting to build complex castles in the sky. And this is how we get things like DBUS, ConsoleKit, PulseAudio and SystemD.