Organising a scene with lots of repeated objects

I’m about to start a complex cityscape for a static image. And it includes lots of repeated objects. This is all new to me. Are there recommended methods, tutorials or examples to look at, where it’s clear how it is done?

I’ve been looking at duplicated+linked objects, array modifiers, and instancing.
External linked files look useful too. I wonder if I should build it all in separate files and load them together. Or are there limitations or benefits to any of these methods?

Particle System has it’s uses.

Do people use non linked duplicate objects. Or link where possible?
Do people use externally linked files. Or does that not work so well.
Should I structure the parenting or Collections cleverly or just dump it all in?
Does none of it matter? Even with many hundreds of simple objects?