Core currently hardcodes the user of Symfony's classloader, then allows apc to be specified in settings.php, then we have a load of hard-coded function calls to specific methods on the classloader which need to be updated in any patch which tries to change it.
Instead we could do the following:
- add an interface for the class loader
- adapter class if the specific one we're using doesn't match it.
- allow the classloader to be changed in settings.php via $settings and load whichever is there.
That way we can easily swap core's own class loader at any time during the release cycle, and it'll be possible for sites to use anyone that's available.