Qt: el valor de retorno de la señal funciona, ¿por qué el documento oficial dice que es imposible / prohibido?

Documentación qt Dice, los valores de retorno de las señales no son posibles:

Las señales son generadas automáticamente por el moc y no deben implementarse en el archivo .cpp. Nunca pueden tener tipos de retorno (es decir, usar void).

Preguntas de SO relacionadas:

¿Pueden las señales Qt devolver un valor?Qt: significado de valor de retorno de ranura?

Sin embargo, de mis ensayos (Qt 4.8.1) puedo decir que los valores de retorno funcionan:

Si la señal / ranura están en el mismo hilo, ConnectionType puede estarQt::AutoConnectionCon señal / ranura en diferentes hilos que necesito usarQt::BlockingQueuedConnection

Así que en mi código llamo una señal por

QString dp = emit WscAircrafts::signalAircraftsJsonArray();

y la señal moc devuelve unaQString,

QString _t0;
void *_a[] = { const_cast<void*>(reinterpret_cast<const void*>(&_t0)) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
return _t0;

Esta es la ranura moc donde se devuelve elQString

case 4: { QString _r = _t->slotAircraftJsonArray();
  if (_a[0]) *reinterpret_cast< QString*>(_a[0]) = _r; }  break;

Todo esto parece ser bastante sencillo, ¿por qué esta contradicción con la documentación? ¿Dónde estaría el problema usando el valor de retorno? Como he dicho, en mi código esto parece funcionar.

Respuestas a la pregunta(1)

Su respuesta a la pregunta