The Linux kernel does distributed development quite successfully, and scales extremely well. However, it does so partly by sacrificing some forms of coordination between developers; for instance, kernel maintainers don't consider duplicated effort to solve the same issue a problem, because the overall process still scales even if some individual developers end up wasting their time.
On the other hand, the development of any one individual patch series to implement one feature typically occurs either by one developer, or by a set of co-located developers in one organization, not by geographically distributed developers. And some other kinds of work, such as backporting or rebasing a series of patches, doesn't work well when geographically distributed.
On the other hand, the development of any one individual patch series to implement one feature typically occurs either by one developer, or by a set of co-located developers in one organization, not by geographically distributed developers. And some other kinds of work, such as backporting or rebasing a series of patches, doesn't work well when geographically distributed.