Aww, damnit... should have tested this further. While trying to incorperate some ideas from my warfare mod experiment into the Freespace mod, I also tried adding this "no ship limit"-fix to the script. Turns out it doesn't quite work as it first appeared to: they don't react to any of the basic commands (approach, destroy hull, etc.), only to manual controls - so you have to use the manual weapon, device and movement controls to actually get them to do anything. Of course, this'll get really cumbersome, if you've got lots of ships around... which is the whole point of this fix.
The problem most likely stems from the fact, that ships added to the mission this way don't look like ships to game's scripting engine. E.g. if you spawn hundreds of destroyers using this method and then do a simple
Select(1,s.ship) in the console to count all ships in the scene, it'll just return the number of "normal" ships and completely ignore the hundreds of destroyers you just spawned.
From what I can see, the problem seems to be the ship-variable, which is 0 for these "fixed" ships. The SelectShips()-command or the Select(1,s.ship) above check exactly this variable to distinguish between ships and other objects. Additionally many scripts check for the ship-variable to validate parameters or to select a group of ships. These kind of actions would completely ignore everything spawned this way, breaking quite a lot of scripts along the way.
I'm not sure about how to get this to work. Of course, any mission scripts for your particular mod can be altered to work with these "hacked" ships. For example, you could assign a hackedShip-variable to each ship spawned using this method and add additional checks for this variable where appropriate.
You'd also need to redo all the default commands in the command bar, so they'd work with that variable as well.
... the question remains, however, if there is anything really hardcoded dependend on this variable... hardcoded somewhere out of reach, especially.