Because the API for the ray_cast() methods went through a breaking change in Blender 2.77 I looked into the performance of these calls to see if if makes sense to use BVHTree.ray_cast() instead of Object.ray_cast().
TLDR; yes it often does, but if you are interested I have more extensive info in this article.
cheers,
– Michel.