I think I know what is going on. This code sets minimum=1, intended for the activeItems entry. This code does not bother specifying a minimum, since the default is 0, which is what we want. But the variable is mistakenly inherited across forms. Really this should be using attrs.minimum, which this should also propagate.
Can be worked around in script-security via
diff --git a/src/main/resources/org/jenkinsci/plugins/scriptsecurity/sandbox/groovy/SecureGroovyScript/config.jelly b/src/main/resources/org/jenkinsci/plugins/scriptsecurity/sandbox/groovy/SecureGroovyScript/config.jelly
index d60c722..3154e4d 100644
--- a/src/main/resources/org/jenkinsci/plugins/scriptsecurity/sandbox/groovy/SecureGroovyScript/config.jelly
+++ b/src/main/resources/org/jenkinsci/plugins/scriptsecurity/sandbox/groovy/SecureGroovyScript/config.jelly
@@ -34,6 +34,6 @@ THE SOFTWARE.
<f:checkbox title="${%Use Groovy Sandbox}" default="${!h.hasPermission(app.RUN_SCRIPTS)}" />
</f:entry>
<f:entry title="${%Additional classpath}" field="classpath">
- <f:repeatableProperty add="${%Add entry}" header="${%Classpath entry}" field="classpath"/>
+ <f:repeatableProperty add="${%Add entry}" header="${%Classpath entry}" field="classpath" minimum="0"/>
</f:entry>
</j:jelly>
but really this plugin is not at fault, and there may be many other promotion conditions which also suffer. A more tolerable workaround would be in promoted-builds, probably specifying
<j:set var="minimum" value="0"/>
inside the repeatable blocks in JobPropertyImpl/config.jelly and PublisherImpl/config.jelly, the two places where minimum is specified. But should also be fixed in core.
Reproduced on Linux in 2.7.3. The repeatable list is always showing an entry even where there should be none.