You have to make things complicated, otherwise your so-called "added value" is not perceived.
Also, the more stuff you throw into the solution, the more stuff you have to mantain and get paid for.
Also (bis), today the great part of devs learn how to use frameworks upon frameworks, not how to write useful code.