Considera che il libro di Alexandrescu è uscito prima (e in qualche modo è precursore) dello standard C++11, per cui alcune cose sono state inserite in tale standard.
Una di queste sono proprio i function objects parametrici che prendono il nome di function.
Tornando alla tua domanda:
mi chiedevo dato che esistono le tuple nel tr1 , fosse possibile utilizzare in qualche modo quelle.
è possibile specializzare un template che accetta delle tuple in base ai tipi della tuple?
la questione è marginale. Usando delle tuple sposti solo il problema dagli N parametri che prende il function objects a 1 parametro (la tupla) che prende N parametri. Per cui alla fine non risolvi niente.

il fatto è che queste typelist sono spesso comode , ma hanno un implementazione incasinata.
Se non hai esigenze davvero particolari (tipo risolvere un bug dell'implementazione di VC++2010 di std::function o capire cosa succede davvero dietro le quinte, che è sempre molto istruttivo): si, l'implementazione è incasinata.

voi mi consigliereste di utilizzarle? o di farne a meno?
Usa std::function (o std::tr1::function se pre VC++2010); come detto prima, sviluppa e amplia la Loki di Alexandrescu.
Però tieni presente che al massimo accetta 10 argomenti (tipo di ritorno escluso).