Looking through git history seems like the "always load english translations" code is quite a few years old.
There's a 5 y.o ticket in here:
https://code.djangoproject.com/ticket/16284Which leads to here:
https://code.djangoproject.com/ticket/3594 with a fix that adds the "discard if english not found" which doesn't resolve the issue completely if you actually have english translations but it is not the default language.
There's also a link to here:
https://groups.google.com/forum/#!topic/django-developers/1X_tPbhG_NQ proposing a change with no replies at all.
I couldn't really understand why is it that the hardcoded english language can not be removed from here.
In my opinion the code should be slightly changed to only load the default language rather than english (and as long as the requested language is not the same as the default one) as fallback, so it can match the actual server side behaviour, which will load the configured language (at settings) as a fallback language as long as it is different from it (an from english, which makes sense because django text ids are all in english).
This change could however affect people that relies on always having an english translation as fallback when the configured default language is not english (does this even make sense? Would anyone do that?)
After this change is done, there could be an improvement (for both js and server side translations) that some people might find useful, rather than always falling back to the default configured language, you could have a map of fallbacks, for example, if the user requests a portuguese language, but you only have english (default) and spanish (secondary), it makes more sense to fallback to spanish rather than english, but if the user requests russian, it makes more sense to fallback to english.