The current implementation of Subst() in SCons yields a recursive exponential runtime due to its implementation details.
The rewrite would address these issues by:
a) Pre-Tokenizing strings when they are set
b) Caching resulting generated strings if appropriate
b) Always calculating all versions of the generated string/lists (For signature, Raw, and for command line)