есть мнение что case class это и есть модель в смысле данные + трансформации, поэтому в него пихают много разных трансформационных методов (не withXXX которые типа factory, а которые типа линз)
и есть мнение что первое мнение это объектно-ориентированная ересь, что case class должен быть pure ADT, а все трансформации должны быть функциями в companion object или вообще отдельно, в трейте ZZZOps
есть третье мнение что первые два мнения это вкусовщина
в пользу второго - иногда в трансформациях может быть что-то, не атрибут case class (то есть его например не надо сериализовать), но атрибут именно трансформации типа clock, который в unit test хорошо уметь встроить отдельно
ООП-ересь - это считать, что эти методы - неотъемлимая часть этого класса и строить из этого политическую программу.
Если же хочется добавить методы просто потому что вызов через точку приятнее - почему нет. Просто нужно не стесняться эти методы выносить наружу, если в будущем окажется, что они мешают