Projections are only written if you explicitly ask for things to be written. By default queries do no writes. This must be enabled.
There are multiple use cases that projections support. Queries are one. Reindexing events is another. Using emit or linkTo absolutely requires writes, it also needs an opt in in order to do. Using something that just modifies its state variable eg the function(state, event) does a write only once every 10 seconds at most by default which is simply a memoization of the state at that point in the fold.