A compreensão da tupla do Python3.5 é realmente tão limitada?

Eu tenho amado as compreensões da tupla adicionadas ao Python3.5:

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

No entanto, quando tentoreturn uma compreensão de tupla diretamente, recebo um erro:

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    

Isso é apenas um pequeno inconveniente, pois eu posso simplesmente atribuir a compreensão da tupla a uma variável e retornar a variável. No entanto, se eu tentar colocar uma compreensão de tupla dentro de uma compreensão de dicionário, recebo o mesmo erro:

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

Sinto que isso é um pouco mais problemático, pois a compreensão pode ser importante para o desempenho em algumas situações.

Não tenho nenhum problema em usar compreensões de dicionário e lista nessas situações. Quantas outras situações a compreensão da tupla não funciona quando outras pessoas o fazem? Ou talvez eu esteja usando errado?

Isso me faz pensar em que sentido era se seu uso é tão limitado ou talvez eu esteja fazendo algo errado? Se não estou fazendo algo errado, qual é a maneira mais rápida / mais pitônica de criar uma tupla que seja versátil o suficiente para ser usada da mesma maneira que as compreensões de lista e dicionário?

questionAnswers(2)

yourAnswerToTheQuestion