Есть разные причины для изменения.
1) Актор - как причина изменения.
Прочитайте статью дяди боба в блоге про srp. Там отличное пояснение на примере из практики.
Мой пример из практики: Если у нас есть список задач одинаковый для Админа и Пользователя, то мы знаем что когда Админу понадобится добавить что-то админ-специфичное мы не должны делать в списке задач if(admin) drowAdminBtn()
а мы должны в коде выделить 2 списка задач для админа и обычного юзера. Потому что они меняются по разным причинам (по хотелке разных ролей)!
У дяди боба пример лучше, его пример достаточно трудно разрешить используя принципы отличные от srp.
2) xxx - как причина изменения.
Пример, зависимость: мы изменили модуль X и теперь нужно поменять его использование везде.
Вообщем-то я бы не относил это к srp, ЕСТЬ ДРУГИЕ ПРИНЦИПЫ КОТОРЫЕ ЛУЧШЕ ПОДХОДЯТ.
То что класс должен делать только одну вещь это "если не хочешь думать делай по инструкции".