Explicit references are allowed on all script functions
It seems Morrowind allows specifying explicit references for all script functions, even those that don't use them. For instance, scripts can do @player->stopscript "foo"@ or @player->getinterior@ even though these functions act globally (I've verified by doing @fargoth->getinterior@ in a script in vanilla, and it reports whatever cell type the player is in).
I'm not sure how to cleanly fix this, since we differentiate between script functions taking an implicit reference and an explicit one, and its the script handler that's responsible for "popping" the explicit reference ID off the stack where it was placed. We'd pretty much have to duplicate every script function so they all have ImplicitRef and ExplicitRef variants, as well as add a bunch more opcodes to the list.
I think the best solution would be to handle the implicit/explicit references outside of the script function handlers, in the VM. That way you only have one handler and one opcode per function, regardless if the script specified an explicit reference for the call or is using an implicit one. The handler itself can then decide whether it wants to use the reference like AIWander or StartCombat, or if it will always ignore it like GetInterior or StopScript. This would also cut down on the number of opcodes and setup code. As well, this would help avoid bugs (e.g. an ExplicitRef handler that neglects to get the reference ID off the stack).
(RM-892 from redmine: created on 2013-08-26 by Chris Robinson, , closed on 2014-02-12 by Marc Zinnschlag)