Array with more than one empty is it possible? I want to scale an array in the middle and at each extremity and I was thinking about having 3 empty located along the array but the array don't seem to be able to have more than one empty to control the scale like I want.

I already tried using the curve radius but this distort my object.

The reason I want to use array is because the object doesn't get distorted and it is keeping the same distance between them.

Here an image to explain what I need to do :
Array + Curve Radius is the way; you just need to use duplifaces with the scale option instead of arraying the final object directly.

Setup a simple plane object and use the array as desired on it. This plane will only be used as "emitter" for the true geometry you wan to to array.

The array on its own will guarantee constant spacing. Then add a Curve Modifier and adjust the curve radius as you already described.

This will distort the plane, but not any duplis it may have, so now parent your true array geometry to said plane object with the array.

In the Properties Window > Object > Duplication turn on Faces, and tick the Scale option.