I will review the PR later today but just to answer this question now (I've been asked this many times).
The intent of multiple parameters is to be able to simultaneously evaluate (or fit in some cases) the same type of model on multiple data sets. A good example is a cube with up-the-ramp IR data and performing a linearity correction. Fitting of polynomials with the `LinearLSQFitter` can be performed simultaneously and this is a huge improvement over looping through all pixels.

The current rules are:
- linear and non-linear models can be evaluated simultaneously
- linear models can be fit simultaneously if the the `LinearLSQFitter` is used
- because of the nature of non-linear fitting algorithms non-linear models can be fit currently only one at a time
(But may be this can be changed in the future by using multiple processes?)

This is in contrast of having a parameter of type array. Parameters of type array are supported (although there's no model like this, only a test case in test_models.py.) If a parameter is an array and `param_dim` is > 1, the parameter is going to be a list of arrays.
However, the `parameters` attribute of a model is always a flat list. It's real purpose is to communicate with the fitter.

Does this make sense?