How to animate rotation of an object in circular array, without the rotation affecting direction of the array itself?
You can simply parent your objects (the empty used for the array modifier and the mesh object) to another empty and rotate this last one.

Doing so will keep the relative location and rotation of the arrayed mesh and the empty used in this array.
That can also be:

In this case, hook the mesh to an empty and rotate it. Concerning the array, make sure that it is set on &quot;constant offset&quot; (not relative offset).