I love this concept when you are dealing with a blog that has posts and comments, or a todo app. However..in my experiences thus far, this type of cohesion becomes increasingly complex and open to individual interpretation when you are dealing with more complex business domains. Say for example, several different types of customers engaging in several different types of transactions that have just enough differences…
Making a code layout like this is effectively making a prediction about what future changes are likely to entail. Predictions can be wrong, so we want to be able to change anyway.