People want to be rewarded for their good content. That concept is solid, no doubt about it. People want to be able to monetize their content. Giving incentive to reward good content drives engagement. User's seeing good content being rewarded drives user's to our front door. Using your stake to generate rewards is an incentive to hold SP.
Are there other things that can be done that help user retention? Absolutely - but most of them are front end / applications level work, not blockchain development... The first thing that comes to mind is communities, and the list of other things is certainly long, but attainable.