Seems strange that this JIRA has been pushed out completely and marked as "minor", while the likes of JENKINS-40487 is in and is marked "major". Both of them are essentially the same problem i.e. reducing the number of backend calls that the client-side needs to make.
I have a tentative fix for this using localStorage, the basis of which I think can be a very useful piece of infra to help us with per domain caching of other things e.g. localization data, maybe CSS, client-side logging levels if we get to doing that right etc etc. In this specific case, it results in the calls for classes to be completely eliminated once the client has loaded and cached that info, with the cache being wiped/invalidated if there's a new Jenkins instance on the backend, or if the plugins change (installs, updates, removals).
tfennelly classes could be different across reboots of a Jenkins server so are not cacheable on the client without a cache invalidation scheme. The problem with classes as designed is that we need to make these requests at all which is why I want to take this back to Vivek.