Check other comment around proxy via reflection vs decorator. 
Iterables can be consumed several times. Not sure why shouldn't we use the same policy as with collections