The optimizer stores an internal instance of the Hypercube type which it displaces and shrinks. Typically, when optimizing an objective function, after many iterations your best value will be begin to settle down and won't change much between iterations.
Essentially, this means the hypercube has shrunk down to a very small size and continued optimization iterations are unnecessary. Automatically exiting the optimization loop is beneficial here.