ioannis: you are completely right about the chain getting broken if we unload zoom like this.
when core unloads zoom, it will first unload scale too, and reload it after that (as described in this thread many times). you can take a look at display.c updatePlugins if you want to see how it works. (lines 1465-1561).
i think what mikedee wanted to say, is that plugin developers shouldn't be aware of it, they should only be concerned about their wrapped function and core's function (which, [b]as far as the developer is concerned[/b], is called by UNWRAP / call / WRAP).
in mikedee's point of view, you shouldn't look at WRAP / UNWRAP as a stack (although it actually is), but just as a way to call the core's function. (mikedee, please correct me if i misunderstood you).
personally, i both agree and disagree with mikedee... i think he might be right about it being easier to look at WRAP / UNWRAP not as a stack but as a way to call core's function, but i also think a developer should at least be aware of it being a stack.