I ran your script(s) above and I think that is what Don is saying here in his Beta history for v12.10.0001.So all start types supplying one caption (or any list of captions) lead to no-execution of _Initialize or _Terminate.
When I ran your test script with no labels, it essentailly ran everything..."_Initialize,a ,b,c, sub, and lastly "_Terminate". I know we had the capability to "load" and set variables...actually, I remember and saved some of your posts that went into detail on that some time back, but now with "_Intialize" we'll be able to do that automatically in a script that contains it. It's kind of nice since other scripting lanquages as far as I know have something similar without having to specifically use a load "_BlaBlaBla". In some cases when it comes right down to it, it was used because we didn't have a feature (or script) like "_Initialize"/"_Terminate". For info, I ran some test scripts which used no labels or menus, but used "popupmenu" and <get drop>, and "_Initialize"/"_Terminate" were executed.If a script within a MSR is called directly (SCs Sub or Load), then "_Initialize"/"_Terminate" are NOT called.
By the way, as a minimum I was probably abusing "_Initialize", but then again I'm still just playing.