Iterator versus Stream de Java 8

Para aprovechar la amplia gama de métodos de consulta incluidos enjava.util.stream de Jdk 8 Intenté diseñar modelos de dominio donde los captadores de relación con* multiplicidad (con cero o más instancias) devuelve unStream<T>, en lugar de unIterable<T> oIterator<T>.

Mi duda es si hay gastos generales adicionales incurridos por elStream<T> en comparación con elIterator<T>?

Entonces, ¿hay alguna desventaja de comprometer mi modelo de dominio con unStream<T>?

O, en cambio, debería devolver siempre unIterator<T> oIterable<T>, y deja al usuario final la decisión de elegir si usar una secuencia, o no, convirtiendo ese iterador con elStreamUtils?

Nota que devolver unCollection no es una opción válida porque en este caso la mayoría de las relaciones son flojas y de tamaño desconocido.

Respuestas a la pregunta(2)

Su respuesta a la pregunta