I could understand if gaim spec had a scriptlet which parsed the output of ./configure and set something like %wehavetcl, then added a Requires like the above. But this is not what is happening. Can you enlighten me about the magic workings in the case of gaim?
I think all that is happening is that redhat's build system doesn't have a minimal environment for building rpms in. The package gets built inside an environment with tcl installed, configure picks it up, and the resulting package is built with tcl dependencies.
Another point in favour of clean build roots.