CreateUnit is good for scaring up troops, for dynamic missions and so on.
I am going to disagree about some of the lag causes; or rather about the priorities of them.
yeah, lots of stuff onscreen will slow things down noticeably.
But proximity and AI have a noticeable effect.
When I was making "Short Straight", I had some issues with FPS. Well, okay, the point of the mission was the helo insertion at the beginning, so I was willing to sacrifice a bunch of FPS provided nobody got shot. But afterwards, I did want to have some fighting without the frame rate chunder of a dozen helos and three platoons of infantry.
It turns out that even stuff that was out of sight but in the general area caused a severe amount of lag. Rather than createunit, I used bulk setpos with a savegame to hide the frame rate hit.
So when the leader of the player's group gets a certain distance away from the LZ, a script runs that indexes the position of the two squads (4 groups) securing the LZ, and setposes them to an island far, far away.
I have a single NVA squad that represents a counterattacking platoon. WHen it gets to a certain distance from the LZ, or when it's triggered, I setpos in the whole platoon, along with the LZ force (with another savegame to hide the freeze)
That way, I get a counterattack late in the mission, when attrition has (hopefully) reduced the number of running and fighting AI units to a more manageable level, and it happens at logical moments in the mission (moving away from the LZ, returning to the LZ).
Oh yeah, and the helos don't have to land -- if they hover way out at sea, they have a minimal effect on FR. And, the way helos land, it's probably safer that way anyway