Best practices for acceptable compilation times?

I recommend doing this as an absolute last resort, at least when it comes to separate dependencies. It renders a lot of optimizations impossible, eliminates architecture independence, and breaks between compiler versions unless the dependency in question is built with module stability.

It will prevent recompiling, obviously, by virtue of making it impossible. And the last two issues may not matter if you are only using the module for one thing. Nevertheless, try everything else first.