I'm perfectly ok with a maintainer reserving to himself the right to modify or even force-push a PR. If feature-wise the PR has value, but there are other requirements that have to be meet in order for it to be mergeable, I see no problem in the maintainer making his hands dirty. This contributor's work is recognized, and the maintainer can keep growing the project the way he wants.
Not every occasional contributor will become a project member, so it makes no sense to impose too much burden on him. Maybe he only wants an interesting feature added.
Some of them will eventually become interested in becoming regular contributors, and that is even better, but every one should be left freedom of choice.
In my experience as Etherpad maintainer (1.6.5 through 1.8.4) this approach worked very well. For example https://github.com/ether/etherpad-lite/issues/3540 (and the related PR https://github.com/ether/etherpad-lite/pull/3559) where deep changes that went very smooth, not only code wise, but above all wrt the relation with the contributor, who was smart and collaborative.