Why do you need to modify CFLAGS externally? It should be done at most to pass additional optimizations flags.
And automake sucks at that, by blindingly propagating flags even where they shouldn't be propagated. To get the same effect in SCons you just need to add ENV=os.environ to Environment constructor.
Scons supports cross-compilation just fine, toolchain files are much easier to use than tons of --with-yet-another-fscking-lib switches that automake requires (and then fails nonetheless). And if have a complex build that requires building an executable tool as a part of the process... Well, scons and cmake are much better in that regard.
Autotools might be doing things consistently, but it's doing them consistently fugly.