Scaling the maximum range parameter of BVHTree.ray_cast
I now found a solution to this problem myself, so I post it here in case someone comes across this question. Instead of building the BVHTree directly from the object and transforming all returned values into the global coordinate system, it is way more handy to transform the object's coordinates once into the global space as it is shown here:

def bvhtree_from_object(ob):
    import bmesh
    bm = bmesh.new()

    mesh = ob.to_mesh(bpy.context.depsgraph, True)
    bm.from_mesh(mesh)
    bm.transform(ob.matrix_world)

    bvhtree = BVHTree.FromBMesh(bm)
    bpy.data.meshes.remove(mesh)
    return bvhtree


The ray_cast function then returns all values in global space so that no more transformation is needed.