ATM arnold has the best fur / hair rendering capabilities, and they use some curve - ray intersection code (though heavily optimized).
For example mental ray dies with area lights and hair geometry (and you would need to use different light rigs for hairs), while arnold is perfectly fine with huge amount of line geometry. There were a great paper about his, but I can't find it right now...
But from the code it's clear he isn't doing MIS, but Russian roulette sampling. Notice that the pdf he is dividing by has nothing to do with the BRDF being sampled, it's equal to the percentage of light that is reflected by the objects (as opposed to refracted). So dividing by pdf makes no sense.
PBRT(2) is a definitive book for graphics programmers, especially the ones who are working with raytracers. However if you are into games, it won't be the most useful one for you, since ray-tracing is quite rarely used in the game engines (there are some uses, but not for the whole rendering pipeline).
Do not use BSP. They are too slow to build... Try some kind of BVH, they are efficient, and pretty fast to build (and fast to traverse too). There are a lot of techniques that are allow you to build them even on the gpu.