Definitely some sort of normalization is required for most analyses, but the same sort of normalization may or may not be appropriate for all methods.
In QIIME 2 we handle this by having each method (mostly) perform the normalization that is required. So a couple examples:
- alpha/beta diversity methods have their own normalization (rarefaction in the
core-metrics
pipelines; see q2-breakaway for a more sophisticated method for attempting to estimate the true alpha diversity if rarefaction is upsetting) - differential abundance methods have their own normalization procedures on-board (e.g., see ANCOM or @mortonjt's methods)
It would be awesome to see other normalization methods implemented in QIIME 2 and we have some open issues — if you are interested in getting involved please let us know!