I've looked into this a few months ago, and this is what I found:
The problem is that AbstractBuild queries (in that order) EnvironmentContributors, SCM, BuildWrapper.Environments and EnvironmentContributingActions to incrementally build the set of environment variables while a build is started.
SubversionSCM (an SCM) looks for matching entries in the URL -> Revision map during this variable resolution. If so, they are added as SVN_URL_x and SVN_REVISION_x. Why not just add everything? My guess is externals (while listed for a build, only explicitly defined locations have corresponding variables).
Due to the order of resolution, Env-Injected variables are not yet defined. This leads to a warning in the log of the form:
Afterwards, when the URLs are getting checked out, the variables have already been defined, therefore that works.
My environment:
Jenkins 1.525
Jenkins Subversion Plug-in 1.50 but problem was also with version 1.44