I had opportunity to work in around 3 different projects, where selenium have been used extensively. Among them 2 were based on Data driven (say test cases driven by testng XML for each scenario with different data) frame work and one keyword driven. And I find that the Keyword driven framework is more successful based on how much extensively it was used and the coverage it had in the project. It was mainly because of the 'easy of use' it provided to the manual testers who also practiced writing test cases with the key word driven functionality of the framework, and required only one or two automation testers who had enough coding knowledge to implement new functionalists to the framework when a new addition to AUT came.
From your experience please explain which would be a better type of framework based on test coverage it can provide to an application, re usability, ease of use and maintainability? (I believe these are the factors that brings in good ROI for an automation project.