While your argument has some merits, there are counter arguments.
If I as a company hold patents, I will likely avoid GPLv3 code like the plague. I don't want to accidentally give up the rights to my patents because I happened to touch some GPLv3 code that was in vaguely the same area.
A good example of this would be Apple. They dropped bash for zsh, dropped gcc and wrote clang instead, dropped gdb and wrote lldb instead, dropped samba and wrote SMBClient and SMBX instead, dropped GNU tar and used libarchive/bsdtar instead, dropped GNU rsync and used openrsync instead,
- For zsh they appear to have contributed relatively little code upstream, but that's maybe expected for a mature project that is maintaining stability at this point rather than adding exciting new features.
- For gcc/gdb, they appear to have voluntarily given away *massive* amounts of code, clang and lldb simply didn't exist before Apple created them and open sourced them.
- For openrsync despite only having adopted it last year, they've contributed quite a lot of feature parity code to it (not just macOS compatibility code)
- For bsdgrep, it seems like you may be more right - it seems like Apple prefers to maintain a fork there rather than substantially contribute upstream.
- Samba seems to be a mixed bag - they went from a GPLv3 implementation to a BSD/APSLv2 client, and a proprietary server. The client they are contributing code actively. The server they're keeping all to themselves.
- For libarchive, it looks like Apple's made a ton of fixes, and contributed them upstream, same for bsdtar.
WebKit didn't replace a GPLed project, but Apple has written about 80% of the code in the repository, and licensed it mostly as BSD (with some licensed as LGPL to comply with KHTML's original licensing). BSD is their default license for new WebKit code.
With CUPS/OpenPrinting the story is similar - they adopted a GPLv2 project, relicensed it more permissively, and then proceeded to contribute massive amounts of code.
There's a bunch more cases of the same thing going on.
- XNU - weak copyleft licensed, continues to upstream changes
- Swift - permissively licensed, continues to upstream changes
- libdispatch - permissively licensed, continues to upstream changes
- mDNSResponder - permissively licensed, continues to upstream changes
- dyld - weak copyleft licensed, continues to upstream changes
- launchd - weak copyleft licensed, continues to upstream changes
- Swift Foundation - permissively licensed, continues to upstream changes
- bsd libc - BSDed apple contirbutes heavily upstream
- OpenSSH - BSDed, apple contributes upstream
- curl - BSDed, apple contributes upstream
- sqlite - public domain, apple contributes upstream
- libxml and libxslt - apple adopted them, and actively maintain them.
- Heimdal - Apple appears to have forked it, the license remains BSD in their fork, and all their changes are there.
- OpenPAM - looks like apple keeps its changes to itself here.
The overall picture is that despite all these BSDed projects, Apple in particular still contributes code upstream heavily. This is of course one anecdotal example, but at least from it, it doesn't appear that the motivating factor for changes being contributed upstream is being forced to with a copyleft license. Instead, it looks much more likely that it's simply that having the community all work together on single, standardised components is much more efficient for the industry than everyone having their own implementations, with incompatible quirks, bugs etc.