I think this reflects exactly how FOSS is supposed to work - deliberately, by design - and it is working well.
Companies like Amazon have the right to decide whether to use any particular FOSS code, or switch at any time, and they have the right to decide whether to contribute financially to it or not. Exactly what I expect when I release code under a FOSS licence.
Sure, it might be nice to receive something in return (or maybe not - I may not wish to be associated with a political campaign which chooses to use my code, for example). But the real reason for me to release the code is that it is what I owe to the giants on who's shoulders I am standing. I am using their code and the deal is that I release my code in the same way.
If Amazon have a spat with Red Hat, that happens all the time. And they have a perfectly free moral right to shift to another distro, or a newer version of the same. Or choose to buy a commercial product - whatever they think is better in their situation. Just as I have that perfect right.
If they are dependent on something maintained by one developer they have the moral rights to decide what to do about that for themselves: they can fix bugs themselves, they can pay the developer or someone else to fix them, they can switch to another implementation (closed or open), they can redevelop it themselves. As long as they follow the licence rules (so, for GPL code, they must release their fixes/changes) that is perfectly morally OK.
If I am one of those who doesn't care at all about getting back any changes then I can release my code under a licence which doesn't require that. I do that occasionally. Mostly I want to release code under GPL (in many cases the code was based on something else under the GPL so I have no choice). I support the FOSS movement and the GPL in particular so I always release code I develop from scratch under GPL.
The result is that some important code gets supported financially by big companies, some other is not financially supported but their improvements get released for others to use, and some others allow big companies to make their own changes and lock them up - but only if that was the deliberate decision of the developers. I don't accept that there is any "moral right" involved - just whatever the previous developers chose to put in their licence terms.