Is usage of template and preprocessor techniques that problematic? Sure, it's possibly a programming paradigm you're not used to, but it shouldn't prevent taking over the code once you've learned or practiced with them.
I think there is too much mystification about Boost doing "magic", it's just normal C++ code, that any seasoned C++ programmer should be able to understand once he has taken the time to do so.
If my day time job would be a library writer or compiler builder I would deal with c++ only. However I work as an application programmer and c++ competes with many other focus points. There are some non obvious rules concerning templates which will slam in your face from time to time. Especially during Boost upgrades or compiler upgrades these things happen. For example we ran into this case when upgraded to vs2008. 'VC++2005 Compiler Error: Incorrect semantic accepted to overcome C3200' Boost uses many of this trickery. Have you ever wondered how Boost.Bind is implemented? I had to do this reverse engineering years ago when a popular Boost.Bind construct didn't work in our situation and I was wondering if it was my fault. Anyway may be you are more talented in this respect than I am. Edit: I get Gmanes 'You have lines longer than 80 characters. Fix that.'