According to this tutorial, during the first steps of scRNA-seq analysis (normalization, dimensionality reduction, and finding DE genes), you should remove all mitochondrial/ribosomal protein genes.
But I also heard from other experts that it's a bad idea and you should not do it before dimensionality reduction and clustering, because tossing them out you're just compromising your ability to resolve clusters.
So should I remove mitochondrial and ribosomal protein genes before any further analysis or not?
To a degree, the solution to this depends on your cells and the questions you're trying to answer. In general, no, you should not blanket remove genes coding for mitochondrial/ribosomal proteins. Filtering out genes that are very lowly/not expressed (counts in only a handful of cells) can be helpful in reducing noise and decreasing the size of your data objects. But ignoring those genes completely may result in the issues you state as well as you potentially missing out on identifying true metabolic differences between cells.
As António stated, using these genes to identify and filter dead/dying cells is useful. Now, one way to get around the genes dominating your differential expression analyses/marker lists is to filter them out at that point. This allows you to use all the information available for clustering/dimensionality reduction and still ignore them down the line if you so choose (though you should think closely about whether or not that makes sense in your case, as a cluster dominated by mitochondrial gene markers may have interesting biological differences).
I'm not an expert, but as far as I know you should not remove all mitochondrial genes, because they're indeed important. I never saw any kind of advice or recommendation regarding ribosomal genes, but as I said I'm quite new to scRNA-seq.
What people recommend though is to remove cells with high percentage of mitochondrial genes since these cells can represent dead cells or cells whose membrane broke and all the nuclear related mRNA leaked towards outside the cells. But this is not the same as you ask, because you're not removing all the mitochondrial genes, but cells with high percentage of mitochondrial genes.
If you remove these cells with high percentage of mitochondrial genes you should do it before normalization, dimensionality reduction, and finding DE genes. That is my understanding.