The vast majority of software companies sell Free Software. Free Software just means that the person receiving the code has a set of rights to use, modify, and redistribute it, which is the case for most bespoke software, which is what most software companies (and, indeed, most software developers) sell.
It is difficult trying to combine selling commodity off the shelf (COTS) software with Free Software, but fortunately for 'FOSS Shills' COTS software has never been more than about 10% of the total software market.
Forking does that, because the GPL doesn't require that you contribute your changes back only forwards: you must give the code to the people you give binaries to, nothing more. It's easy to fork a project, make some structural changes, and then release your version that has all of the code that isn't necessary for your use removed and other things that are annoying for anyone who doesn't have access to the rest of your system added. The code is still available, but the cost of merging changes back upstream is often greater than the cost of rewriting them from scratch.
This is fine according to RMS, because the GPL is not meant to protect the authors of the original code, it's meant to protect the users who receive products based on it.
Most of the more distant islands were colonised during small ice ages, when it was possible to walk much of the distance and people had to move a lot because food was scarce. There was thought to be a land bridge from South-East Asia to South America well after homo sapiens came along, and getting from Europe to North America via Iceland and Greenland wasn't such a massive journey for a lost Viking ship aiming for the islands around the north of Scotland.
For a long time, the limiting factor was the amount of food and water that you could carry. The reason that Columbus couldn't get funding for so long was that intelligent people did the calculations of his journey time and worked out that he'd run out of food about half way to India. Fortunately for him, there was a convenient continent a bit less than half way there for him to stop and resupply...
Sailing ships can be becalmed for days or even weeks. This is more of a problem the bigger the ship, as the more wind you need to start it moving again. Even at the best of times, their speed is highly variable, depending on wind speed and direction - if it's a head wind then they need to tack, which can significantly reduce their maximum straight-line speed, if it's a run or a reach then they can go faster. This makes them tricky from an economic perspective, where you need to book dock time well in advance to get goods loaded and unloaded and where your customers typically require things delivered within a fairly narrow window. For low-priority goods, it might be fine, as long as you were willing to wait at the far end for a few days for a free slot in the unloading dock.
There have been some attempts to address this, by flying kits up in the jetstream and using their rotation to drive a screw. This has a lot of potential, but the last demo I saw was only generating 20% of the energy required to propel the craft - the rest came from burning oil.
It's not that clear cut. Sony is actually distributing the binaries, but for a lot of potential contributors the GPL doesn't force anything: they use their derived work internally, never distribute it, so don't need to share any changes. One the other hand, they will often avoid GPL'd code because of the potential for it to affect their ability to turn something into a product later. In this case, they'll either develop their own or, more likely, license a proprietary version.
Without the legal constraint, there are still reasons to push changes upstream. Maintaining a fork is expensive. Bugs get fixed and new features introduced upstream and the more you've diverged, the harder it is to pull the changes. This is why Juniper has recently been pushing a lot of things to FreeBSD - they've realised how much it was costing them for JunOS to be significantly different to a modern FreeBSD.
Even with the GPL's constraint, there are lots of ways around it. Companies ship mobile phones with Linux kernels and binary display drivers, by only using the public kernel interfaces and loading the driver late in the boot process, with most of it running in userspace. At worst, they're required to release the code for their shim that exports the hardware registers directly to userspace. For other code, you can run it in a separate process and the GPL doesn't apply.