I'm curious to know about the actual under the hood behavior of FindGameObjectsWithTag. I believe it could be faster than FindObjectsByType since Unity would already have a list of the GameObjects that are tagged and the untagged ones are already out. So less elements to iterate through.
I also read in the API doc that it retrieves an array of all active GameObjects tagged which tells me that it'll go through an array of just active GO.
So, am I wrong?
Note: I would only call this during the game's loading phase, not on every frame, so I'm not concerned of per frame performance, just the general behavior.