The use case is to exchange the service definitions that a timetable can be or has been built from, either in combination with that timetable or by itself. It is part of the use case that the timetable may not (yet) exist, and in those cases, it would be difficult to exchange the non-existing trains. After the timetable has been created, the service definitions are still useful, and can be linked to the resulting "normal" trains through train groups with the patternTrainRef attribute. Any reading software that only concerns itself with "normal" trains can ignore the pattern train definitions.