I imagine for instance a situation where for instance the project starts with a clear REST approach where GET requests are purely idempotent with no side effects whatsoever.
Then people start adding internal side effects (e.g. tracking, behavior scoring, suggestion building, and so on).
It’s harder to explain to a new dev that from some angle these requests are read only and nothing changes, and from another angle they change a lot of things.
But it would be counter productive to give up on features because it makes things less simple and brings a learning curve.
Of course projects generally do not go with a goal of making it hard to have people contribute, it happens organically as the project grows. But i think after a project has realized they are in such a situation, they should make the necessary changes and improvements to get out of that situation.
It's also a case of things that aren't obvious on day one, but become obvious on day 3, or day 6.