The original authors not receiving your changes doesn’t seem to me to affect their freedom, even if it kinda sucks.
[1] https://en.wikipedia.org/wiki/Permissive_software_license
Separately, I was pointing out that contributing back upstream is a beneficial and nice thing to do, but is orthogonal to freedom. If anything, forcing it means there is less since the person loses the freedom to choose whether they wish to or not. I'm not judging which is better either, just pointing out the differences. Sometimes less freedom for the individual is better for the whole (to ensure equal freedom for all, or so changes are contributed back), we see it in society too: we give up personal freedom for the benefit of society as a whole.
Had Linux nor GCC happened, and we would all still being enjoying commercial UNIXes.
I'm not sure why this is contentious: GPL adds a restriction that, eg, MIT does not -- that you must contribute back. MIT lets you choose if you want to or not, therefore it provides you more freedom. Sure, GPL adds this restriction to ensure that all users have an equal level of freedom. I am not making a value judgement here at all, nor am I saying that MIT (or whatever) is better than GPL as different people have different preferences, priorities or opinions.
See where the MIT freedom has taken the BSDs, and what they have gotten out of it.
I suggest reading a bit about macOS internals and which of those parts you actually find on any BSD variant.
I am all but forced by my employers to write non-GPL code - even when I'm allowed to write permissive-license open-source software.
But beyond that, circumstances also pressure me into making software I write on my own available with a permissive license, to reach wider adoption by people writing commercial code. I occasionally have pangs of conscience about doing that, and wonder whether I shouldn't have just taken the "hit" of sticking to the more worthy license.
Could you also clarify whether the first example is relating to company code or personal code?