A primary cause of complexity is that software vendors uncritically adopt almost any feature that users want.
Feature-based releases expand to fill all available time until someone feels guilty for not finishing the feature on a magical, wish-fulfillment schedule, and hey, has it been a couple of years already?
Users who want critical bug fixes and new features without actually upgrading their software also want magic flying candy-dropping ponies.