Учитывая, что преобразования Sequence являются ленивыми (если только не терминал) и Iterable преобразования нетерпеливы (если вы не определяете свои собственные), можно сказать, что принятие Sequence <> в качестве параметра API c является более общим подходом, чем использование Iterable < > - если API не заботится о том, что характер данных является нетерпеливым или ленивым, он всегда может предположить, что он ленив (таким образом он ничего не теряет, если данные действительно доступны).
Если это допустимая точка of view, то имеет смысл разрабатывать API для использования Sequence <>, а не Iterable <>. Однако мой босс довольно уверен, что Sequence используется только для того, чтобы подчеркнуть ленивую природу данных, что полностью противоположно тому, что я предложил в предыдущем абзаце (чтобы абстрагироваться от природы данных).
Интересно, какой язык подхода дизайнеры имели в виду, создавая Sequence. Означает ли это «эта вещь - это то, что является лениво предоставлено» или «эта вещь - то, что может быть лениво предоставлено»?