Исходные типы прекрасны, когда они выражают то, что вы хотите выразить.
Например, функция десериализации может возвращать List, но она не знает тип элемента списка. Таким образом, List является подходящим типом возврата.
List