I long ago ran out of heap space in the actual Sierra interpreter.
My 'terp uses the same technique as ScummVM for dealing with heap... each script gets it's own 64K address space. As do object clones, dynamically allocated memory, and the stack. Actually, objects/clones only take up 2 bytes of space for their pointer (their properties aren't even mapped into SCI heap space), so I could theoretically have 32,000 of them.