В основном использование этих типов в ваших моделях позволяет добавлять косвенные метаданные в ваш код. Это может быть полезно, если вы работаете с любым видом универсального рендерера для ваших классов моделей или если вы выполняете проверку пользовательского ввода в ваших моделях.
Например, если вы используете тип PhoneNumber для поля с именем userNumber, ваш рендерер на основе отражений может понять, что он должен автоматически назначить соответствующий валидатор текстовому полю, которое будет его представлять.
С уважением,
Павел.