We used to differentiate between projections and event handlers
Projections only create/update/delete views and are idempotent.
Event handlers could do side effecty things like emails or generate another command that goes back into the system.
While playing back events, just didn't hook up the event handlers at all.
Worked beautifully and it was very liberating to be able to wipe out your entire read side and recreate it either exactly the same way or tweak it to handle evolving requirements.