My interpretation of the "yield" keyword is not that of a coroutine yield, but that of "cough up the following value", which is more in line with "return". Under that interpretation, the fact that generators can also be used to implement coroutines is a coincidence with unfortunate terminology namespace conflicts.
I looked around a bit for the original semantic intention behind choosing "yield" as a keyword, but came up empty. Anyone?