I like this idea of abstracting out the operations and keeping them 'composable'. I'd be interested to see some sample apps utilizing this pattern. My concern is that it may add more complexity than its worth for small apps. It seems like this would be an evolutionary move you make when your codebase is swelling and more stringent organization is needed to keep things tidy.