Retorno en generador junto con rendimiento en Python 3.3.

En Python 2 hubo un error cuando el retorno fue junto con el rendimiento en la definición de la función. Pero para este código en Python 3.3

def f():
  return 3
  yield 2

x = f()
print(x.__next__())

no hay error de que el retorno se use en la función con rendimiento. Sin embargo, cuando la función__next__ Se llama luego se lanza la excepción StopIteration. Por qué no solo se devuelve valor3? ¿Se ignora este retorno de alguna manera?

Respuestas a la pregunta(2)

Su respuesta a la pregunta