So this problem is gonna become even more worse.

The alternative for a script that intends to initiate alot server connections / join alot channels is using socket connections and do it all yourself (parsing irc protocol etc) from within script code, which I assume gonna be a big performance drag.

So it's a rather very black/white choice.

Maybe there are some options to avoid it?

I tend to use alot hidden custom windows in my scripts, as data structures, /filter'd or /loadbuf'd from txt file upon script's start.

Because a custom window is memory(fast), keeps its order, and has a very powerful command (/filter) available for it.

In this usage, the fact that it is actually a window is unwanted (except for easy direct debugging purposes).
I think mIRC lacks a 'real' data structure with this characteristics.

So I wonder how realistic/do-able it is to provide a choice to have the data structure but not the window, for custom windows, maybe also for other window types (status/channel/?)

Basically like a switch for certain commands that makes them - alike join -n opens a channel window minimized - not create the window as such.
I guess it's gonna depend on how dependent mirc's functions are of actual window-stored data.
Or said in another way: if the window does not exist (like is the case with that * Error creating window), do some mirc functions fail? Or are these windows really just output alone?

If mIRC's functions can do it without actual window presence, then it might be a realistic option.