I am not sure where, but I am convinced that I have read that it is recommended for Boost libraries that they not use naked throw expressions but instead call boost::throw_exception. Is that true?
Yes. In fact, most of the time it's better to use BOOST_THROW_EXCEPTION macro.
If so, it enforces a dependency of more than half Boost libraries on Boost.Exception. Am I right?
You're technically correct but this dependence is very lightweight: a single file (boost/exception/exception.hpp) designed specifically for that purpose. It's about 200 lines of self-contained code which doesn't include anything. This code is needed to enable the use of the rest of Boost Exception, which can not work without it.
I'm starting to wonder if all the "workaround" headers should be moved into Config (provided they don't depend on anything else). This would be one candidate I guess? Possible others would be boost/cerrno.gpp boost/cstdlib.hpp boost/cstdint.hpp Thoughts? John.