La comprensión de las tuplas de Python3.5 es realmente tan limitad

Me encantaron las comprensiones de tuplas agregadas a Python3.5:

In [128]: *(x for x in range(5)),
Out[128]: (0, 1, 2, 3, 4)

Sin embargo, cuando trato dereturn una comprensión de tupla directamente me sale un error:

In [133]: def testFunc():
     ...:     return *(x for x in range(5)),
     ...: 
  File "<ipython-input-133-e6dd0ba638b7>", line 2
    return *(x for x in range(5)),
           ^
SyntaxError: invalid syntax    

Esto es solo un pequeño inconveniente ya que simplemente puedo asignar la comprensión de tupla a una variable y devolver la variable. Sin embargo, si trato de poner una comprensión de tupla dentro de una comprensión de diccionario me sale el mismo error:

In [130]: {idx: *(x for x in range(5)), for idx in range(5)}
  File "<ipython-input-130-3e9a3eee879c>", line 1
    {idx: *(x for x in range(5)), for idx in range(5)}
          ^
SyntaxError: invalid syntax

Siento que esto es un poco más un problema ya que las comprensiones pueden ser importantes para el rendimiento en algunas situaciones.

No tengo problemas para usar el diccionario y las listas de comprensión en estas situaciones. ¿En cuántas otras situaciones la tupla de comprensión no funcionará cuando otros lo hagan? ¿O tal vez lo estoy usando mal?

Me hace preguntarme cuál era el punto si su uso es tan limitado o tal vez estoy haciendo algo mal. Si no estoy haciendo algo mal, ¿cuál es la forma más rápida / más pitónica de crear una tupla que sea lo suficientemente versátil como para usarse de la misma manera que las listas y las comprensiones de diccionario?

Respuestas a la pregunta(2)

Su respuesta a la pregunta