I think you misunderstood which value gets thrown away.
Consider this:
>>> g = lambda x: 7
>>> f = lambda: g((yield))
>>> list(f())
[None]
Can you tell me where the 7 went to? As far as I see, it went into oblivion.