The refactored version.cpp.in incorporates the command line into the version information. This, however, means that if you change the list of targets to build, that version.cpp is regenerated, and then everything needs to relink.
In other words:
scons ... all
scons ... smokeCppUnittests
The second invocation needs to re-link every binary.