well... I've followed the rslayer's suggestions and simply it works.
Actually, this solution is just about changing the old bp bp->root_components; with the new $bp->active_components). If you take a look to the code, you can see the plugin si checking if the user is an "approved" member, and if is not, he is redirect to his profile (the only bp page that a 'pending' member can see)
I'm running WP 3.3.1 and BP 1.5.4
I've also customized some BP default messages, so if you try to register an account on my website, the system says something like: "hey, now you have to wait for an approval by admins!". If you can try to log in to the site, you can see your profile but NOT the members, forums, groups directories (and other bp's components).
So yes: the user is registered, BUT he can't see bp pages until his account is approved. It means that the function is_user_logged_in returns TRUE for him, but if you're searching for something that just hide the BP pages until the member is approved, this solution could be good enough.
If you're interested about it, I can share my code (but is hard-translated in Italian...)