With the codebase as big and complex as Linux, you don't have to know everything to be able to contribute. It will be different module being implemented in different language, and more language supported is more people can contribute to the codebase (people who has been put off by C).
Furthermore, for a language to be supported, it must have enough infrastructure (tooling, people, convention...) to support that language first, so people to review patches shouldn't be a problem.
Obviously, language should not be added willy-nilly, it must prove that it can solve some problem that the current set of languages can not solve efficiently, and base on that merit, it will choose to write/rewrite the modules that have the most of those problems first.
TL,DR: a decentralized codebase.