I spent quite a while working this out today based on the responses above. It turns out that everyone is right, just not being particularly helpful with the explanations. I've made a few test files to check the behaviour and as far as I can tell, the behaviour is as below.
In Fusion, the behaviour is as follows:
1. Create an assembly (in another file) and import it into the file as a linked component (personally I drag and drop the model I want from the Data Panel on the left).
This has some significant advantages in terms of speed when working with large assemblies because the imported assembly doesn't have to re-build with every model change - it's only re-built when a change is detected in the source file.
2a. Create another instance of the component by creating a mirror (Mirror).
This feature creates a mirrored local copy of the original file and brings the associated design history with it so that the locally created component can be modified if necessary as a stand-alone design.
This is very useful if wanting to create a mirror of the component (e.g. As Drawn vs Opp Hand versions) and is pretty logical given that the feature is called a mirror :-).
2b. Create another instance of the component by creating a copy (Move/Copy).
Instead of a mirror, use an axis to create a 180deg rotated copy of the original file using the Move/Copy command.
This creates a linked instance of the original file and maintains the links to the source.
Personally, I quite often used "Mirror" as a quick way of copying a component set from one location to another and I hadn't realised that this was the behaviour until just now.
I have now re-built my most recent model using the rotated copy method and my large assembly performance has improved markedly.