Addition to message #21:
Another use case for fine-grained permissions is when a commit concerns a security problem. The changed files in such a commit should be visible only to the author and to those who manage security updating. In case it isn’t obvious, the reason is that making these files readonly or read/write might leak compromise information to malicious users when the repository access is public.
Also, it might be helpful to note here that the Google Gerrit Code Review process and tools, built on top of git, already provide such fine-grained permissions, but at the expense of a very detailed workflow as compared with either git or GitHub.