The BVHCacheType bvh_cache_type parameter should be read only as it defines very specific BVHTrees that cannot be customized.
So it doesn't make sense to pass this value to any *bvhtree_from_[...]_ex function as the BVHTrees created in these cases are custom and cannot be saved in the cache.
This also resulted in a nice cleanup in the code.
(Inviting @Brecht Van Lommel (brecht) as reviewer due the work on D11603).