Sure, everyone's work is in the version history *somewhere*.
But it's easy to slip in a change which persists without anyone noticing, if there are hundreds or thousands of commits a week.
Changes to some code should be reviewed by people closely affiliated with that code, and permissions are helpful for ensuring that review does happen.
Permissions aren't the only way to ensure a particular workflow. Maybe triggers could flag when changes are made be people who aren't in a pre-approved list for a particular subsystem. Allowing changes and sorting out the conflicts afterwards are more in keeping with modern VCS methodology.