I created a torus, stretched it (X=1.3), and added an Array modifier (n=5) with an Object Offset (an Empty that does nothing).
The effect is that the stretch is applied to the original copy. it's undone in the second copy and later copies are subsequently narrower. Needless to say this is not what I intend to do. To "fix" this I need to set the stretch values of the Empty to those of the torus.
Why is that necessary? doesn't make sense to me and smells like a bug, as I'd expect that adding a "no-op" Empty to an Array should not affect the result.