Практическое применение f((yield x))?
Когда вам нужно создать "плоский" итератор, из которого поочерёдно вылетают аргументы/результат некоторой функции.# coding=utf-8

def f(x):
    return u',\n {}.\n'.format(x.lower())

print(u''.join(f((yield i) or i) for i in [
    u'Ветер с моря дул',
    u'Нагонял беду',
    u'И сказал ты мне',
    u'Больше не приду'
]))
Ну и чудище. Похоже на косяк Guido.
"there is no reason to do it this way".
UPDATE
так чуть длиннее, но не вызывает у меня отвращения:>>> from itertools import chain
>>> def f(val):
...     return "Hi"
... 
>>> list(chain.from_iterable((a, f(a)) for a in [1, 2, 3]))
[1, 'Hi', 2, 'Hi', 3, 'Hi']