I don't think it's the "yum downgrade" itself which does this. The puppetserver service, when running in a standard (non-external CA) setup has logic in it which, at startup, will try to copy over the file configured for the
hostcrl setting with the file configured for the
cacrl setting. It does this to ensure that the CRL file used by puppetserver's web server reflects the latest updates that have may have been done to the cacrl file since the last startup. This file synchronization does not occur in the "external CA" configuration, though, since the cacrl file is not used in that case. My guess is that after downgrade, the original bootstrap.cfg file from the puppetserver-2.4.0 package was reinstalled, re-enabling the standard CA service and, therefore, the CRL file synchronization logic.
I think you might have been able to avoid having the CRL file overwritten if you had copied the file at /etc/puppetlabs/puppetserver/bootstrap.cfg.rpmsave back to /etc/puppetlabs/puppetserver/bootstrap.cfg before the downgrade. In that case, I think the disabled CA service would continue to be used when the puppetserver-2.4.0 service had been restarted. Does that make sense?