No, perché, per come funziona l'espansione delle macro, se definissi TOSTRING in quella maniera otterresti
"__LINE__", "__FILE__", eccetera. Il doppio passaggio è necessario perché le macro __LINE__, __FILE__ e compagnia vengano espanse nei loro effettivi valori prima di passare per l'operatore # che le rende stringhe ("65", "./test.cpp", ...).