Нет. Нарушение S все таки можно увидеть. К примеру когда функция выглядит как: func DoBarAndBuz() или func DoFooOrBar.
А "нормально" оно у каждого свое.
Никогда таких функций не видел, но видел что-то вроде имплементаций,для примера возьмём, File, который работает с файлом. Пишет, читает, перемещает. Это нарушение S? Или писать в файл должен кто-то один, а читать кто-то другой? По практике да, разделяют. Но ведь если всё собрать в одну реализацию, то тоже вроде как S не нарушен. Зона ответственности - работа с файлом. Как определить тут? Функции в вакууме удобны для рассмотрения, но на практике жаркие споры где S нарушен постоянны.
У одного моего знакомого, в проекте нет интерфейсов больше 1 метода. Потому что там S маниакально преследуют.