Good question, but I'm not sure if I can explain this here...
The Noise Texture is like an infinite 3d structure, which has a centre. When using Generated Coordinates, that centre is at the World Origin (0, 0, 0).
When you are using Object Coordinates, that centre is at the Origin of that Object. By using an Array Modifier, you still only have 1 Object and therefore only 1 Origin. Like you have an infinite Swiss cheese and you are cutting equal size blocks (or cylinders) out of it; every block of cheese will have a different pattern of holes.
When you would have only cut out 1 block and then scanned it and 3D printed copies of that block, every block would have the same pattern.
Now, Apply the Array Modifier. Nothing changes, you still only have 1 Object.
Switch to Edit Mode, select everything with A. Press P > Separate by Loose Parts. Back to Object Mode. You now have several Objects, but all have their Origin in the same place. Go to Object > Set Origin > Origin to Geometry and voila:
To be honest: I stole the cheese analogy from Lance Phan (maybe he stole it from someone else...), because I found it so clarifying and funny;)
Anyway, glad you got something out of it!