I think that was about binary compatibility between different releases of
Boost or its libraries. It's a bit different from compatibility between single
release builds for different C++ versions.
Speaking of different releases, Boost does mangle library names with the
release version, so linked applications will always use the correct binaries.
This counts in favor for the solution (2), with mangling library names
differently in C++03 and C++11.
There are also parameters where the names do not encoding important
settings. If the code is compiled for x86 or x64 for instance. The user
is just expected to build and use the libraries they need.
Libraries for different architectures are installed into different system
folders, so it's not a problem.
Surely there are compiler options that affect ABI and do not get encoded in
the file names. Things like stack alignment and calling conventions are far
from being commonly changed in projects, and if they are people know the
caveats. C++ flavor is another kind of option. You should typically _expect_
more and more people enable C++11, despite the fact it's not the default on
current systems. And, IMHO, Boost should honor and help that trend.
No, not really. I had a few quick attempts that failed because of my
incompetence with Boost.Build and then I got distracted.