Мне кажется что основной задачей класса является предоставление методов для работы со значениями заголовков
Вам не должно казаться, класс создаётся для решения конкретной задачи, и разработчик должен понимать а не догадываться.
Меня очень волнует именно вопрос следования этому принципу
Прям-таки «очень»? Эта, извините за мой французский, херня Вас
волнует?
Если по сути вопроса — то ответ «да», для следования указанному принципу нужно сериализацию выводить за пределы класса.
Если же следовать
другому принципу , то сериализацию следует рассматривать как вспомогательную функцию для решения основной задачи, потому выносить не нужно.