The header boost/iterator.hpp is a convenience header but all it does is put std::iterator in the boost namespace. Ditto for boost/detail/iterator.hpp just putting std::iterator_traits and std::distance into the boost::detail namespace.
I don't know the history of any of this. I am working with 'iterator' on sufferance <g> because it doesn't look like any maintainer is paying the slightest attention to it and it still remains a key Boost library which needs some maintenance. If Marcel Raad, or some other expert, would like to be the new official maintainer of 'iterator' I would be more than happy.
I understand all this. Seems to me that a mistake was made when these headers got transformed into forwarding headers to the standard library. So I would recommend to the maintainer (whoever that might be) that he change them back to what they were in order to be consistent with commonly accepted boost practices. Robert Ramey