For es() - when number of observations is not enough to fit ZZZ, make a pool of models with ZNN, ZZN, ZNZ - depending on the data frequency and sample size.
For auto.arima() - restrict orders depending on the sample size.
For auto.ces() - restrict types of seasonality depending sample size.
It is really hard to do anything reasonable for auto.ssarima - too many possible combinations! So throwing stop() if number of observations is not enough.