In a set of related packages, where is pre-compilation best done?

I am in the process of abstracting out some core functionality and methods from packages in the JuliaActuary ecosystem into a “Core” package.

Is it always good to precompile code where it’s defined? E.g. in the “Core” package? Or does it depend on factors like:

  1. If child packages extend types/methods from “Core”.
  2. The user-facing child package @reexports types/functions from “Core”

Thanks in advance for advising on best practices.