
I can't speak for all of these, but some of them are libraries that don't have their own namespace (e.g. enable_if). As long as enable_if is directly in namespace boost, it makes sense that its detail is in boost::detail.
I don't subscribe to that. I think details of every distinct library should be in a separate namespace. The reason is detail stuff is not documented and changes frequently, so no library writer can actually add safely any new name to boost::detail. This means that boost::detail should not exist at all, unless it is used only by 1 library. Detail name clashes can be very frustrating because they only manifest when certain header file combinations are included into one translation unit. While libraries residing in boost::libraryname can use boost::libraryname::detail, the ones that are in boost namespace directly could safely use someting like boost::libraryname_detail. cheers, Marcin