I'm sure (1) is a factor, probably (3) as well. Number (2) may be a factor, because viewing those objects would put a stress on the video card. Triggers and looping scripts also cause lag, because they have to update regularly.
For massive missions, many editors seem to use createunit and createvehicle to spawn new units at the appropriate time, so that they don't put a useless strain on the computer. Deletevehicle can also be used to delete triggers after they've become useless. Since dead bodies continue to take up the computer's energy, there are also a bunch of dead body removal scripts floating around.
Besides that, I'm mostly as far in the dark as you are.