In open source projects, why do software patches have to be accepted by a developer?
Isso ocorre porque as distros contêm apenas uma versão de um software. Se o seu patch for aceito pelo desenvolvedor, ele irá liberá-lo, o que fará com que ele seja o usuário final.
Couldn't contributors just release their own patches and allow people to
add the patch if they choose to
É possível, mas, neste caso, as pessoas precisam entender como aplicar patches. Geralmente é uma maneira muito complicada e nerd de aplicar patches de código. O usuário precisa obter o código-fonte do software, aplicar o patch, criá-lo e instalá-lo. A maioria dos usuários não técnicos apenas instala o software já construído. A maioria deles não vai passar pelos problemas de consertar o software.
For instance, lots of people want Rhythmbox to be more attractive.
Why can't the people who design themes on DeviantArt turn those into
code and let users download those themes themselves, even if the developers
at Rhythmbox won't accept different themes?
Você está falando principalmente sobre temas. Muitos softwares possuem sistema de plugins que permitem que o comportamento do aplicativo seja ajustado para atender às necessidades do usuário. Um plugin pode fazer o Rhythmbox parecer mais atraente. Nem todos os aspectos do aplicativo podem ser ajustados. Somente aqueles aspectos de uma aplicação podem ser ajustados desta forma (plugins / temas) que são explicitamente suportados pelo desenvolvedor da aplicação.