factory와 intermediate, terminal이 서로 다른 수명 역할을 갖는다.
source snapshot을 만든다.
같은 T의 새 pipeline
R 타입의 새 pipeline
현재 값을 terminal 결과로 낸다.
핵심: 학습용 eager 재사용 계약과 JDK Stream의 lazy single-use 계약을 혼동하지 않는다.