The only safe choice is to encode everything. But if we're to continue to guess, I'd say that, at minimum, cxxflags can certainly affect the architecture and address-model and everything else, and are currently not encoded.
Yes, so if you do:
b2 toolset=gcc
and then
b2 toolset=gcc cxxflags="-m32"
then you'd get wrong cached results of configuration check for address-model.
It is possible to solve, in general, but it requires either creating directory paths using a hash of property set (which is ugly), or storing a hash of property set is a separate data store. I believe SCons is the only one that solves this (using the second approach). Maybe it's because it's reasonable to assume that if people adding options such as "-m32" to cxxflags know what they are doing?
I think you're giving folks altogether too much credit ;) While it may not be possible to fix absolutely everything, if you know enough to place object files in different directories, then you know enough to configure them differently too. IMO Peter is correct - you should assume that everything makes a difference unless you know otherwise - not the other way around. John.