Why not? SLR (Single Responsibility Principle) part of SOLID should be enforced as part of the code and design reviews more as an adherence to guidelines rather then a rule.
There has been a lot of debate over the possibility of applying the SLR from the very start of the development and then continue to maintain it over the period where your design evolves which as I have experienced is difficult as may be acceptance to TDD or Pair Programming was to start with, but it has to be developed as a habit and the benefits will follow. It is easy to understand but can get quite tricky to implement at the very start. How it helps is
- One reason to change for a class means complexity of the code is highly reduced
- Code is decoupled making it easy to evolve
- Ease for testing the code
- Each class has a well defined and thought through purpose for its existence
As always there is a tradeoff as it might create a little bigger codebase with a lot more classes as soon as we start assigning single responsibility to each and keep on refactoring the code to do that but even then it will be much more maintainable and readable. Also it might take a little bit more time to get a hang of it and might not be as relevant for quick and dirty POCs but then those are never supposed to be deliverable working piece of software.
So no doubt an excellent principle to follow as a guideline but then is there is a limit and should not be enforced as a rule while doing a code/design review and when I say limit, there is a limit to clarity of code which you can bring in keeping the code consistent, a limit to break down the code in separate classes which share a very similar purpose, a limit to how much you want to adhere to it still developing stories at the breakneck velocity being demanded because of business reasons and a limit o isolate and encapsulate cross cutting concerns like logging or exception handling etc.