In both the learnErrors and dada steps one can either use a list of filtered sequence files (FASTQ) or derep objects. Internally both functions convert filtered FASTQ to dereps, so pre-running saves some time at the expense of memory.
However, when running the initial learnErrors step or dada in a pooled or pseudopooled mode with tons of samples, these all need to be preloaded in memory which can dramatically increase memory usage for very large data sets. Currently in our workflow only dada uses pre-generated dereps for denoising in pooled mode, we should switch this back to using the original filts and could (in theory) remove dereps entirely.