Shadow rendering on dynamic objects

Here Shadows is an array of objects
which means that whatever the lighting
setup is, whole scene or something
else, the shadows will always be
applied on a per-object level, right?

No, if you’re using whole scene shadows (e.g. CSMs) there will be one FProjectedShadowInfo per shadow cascade. There is no per-object projection in that case. The frustum used for the projection is the cascade’s frustum extruded along the light direction.

Please correct me if I’m wrong in
understanding that when a light is a
dynamic light, shadows are still
rendered per object.

If you have a movable light and CSMs enabled, the shadow projection will be done per-cascade as described above. The only exception is in the case of inset shadows, as mentioned above. These are still projected on a per-object basis.