Yep, you could. But the collisiondetector is a set of methods that share a common state, e.g. the result of the detector, maybe in future revisions the voxelcluster is needed in other methods as well. That's why it is designed that way: If you e.g. want to move a cluster, you create a collisiondetector, move the cluster and ask it for collisions. 
I agree that this could be achieved otherwise as well, but I think it is more flexible this way, thus I like it better.