AFAIR, it was called just once. And probably there where more than one parameter, there was one for each filter... can't remember...
I'm no expert, but maybe calling all these filter within a single Gscriptclip instance made avisynth (and/or virtualdub) goes south!
Honestly, I expected it to consume more memory splitting the tasks, but the contrary was true...
I add that I saved the clip using Lagarith, if it can be of some help to discover this strange behaviour.
Last thing: to discover if your avisynth script has some kind of memory leak, instead of waiting hours (days) before it will crash, just load it in virtualdub, and point randomly to the seeking bar - I mean, a lot of times, grab the cursor and drag it left and right... you will see memory rise; then, memory will eventually stops at a certain point, or raises until an out of memory message will appear. It can save A LOT of time, wasted otherwise...