I have seen many QA teams in many organization creating very complex and huge test automation frameworks and use concepts like Java reflections, use a lot utility classes, use many many dependencies/libraries and third party plugins, have many different reporting options, even for a normal sized web application.
However, to test a financial/banking web application, I made a lightweight Cucumber BDD based framework built on Selenium, Java, TestNG, Maven etc..
Used Page object model design patterns, Log4j logging and Cucumber Extent reports...at a basic level.
Now, some people argue that I made a very easy framework as I am afraid of complex Java programming and lack coding skills. But is complex and large Automation framework required anyway?