Ответ 1
Я думаю, что текущая документация /javadoc of Stream довольно ясна:
Потоки имеют метод BaseStream.close() и реализуют AutoCloseable, но почти все потоковые экземпляры фактически не нужно закрывать после использования. Как правило, только потоки, источником которых является IO-канал (такой поскольку те, которые возвращаются файлами Files.lines(Path, Charset)), требуют закрытия. Большинство потоков поддерживаются коллекциями, массивами или генерируют функций, которые не требуют специального управления ресурсами. (Если поток требует закрытия, его можно объявить как ресурс в try-with-resources.)