I hate to say it, but the best developer software tends to be open source and the best end-user software tends to be proprietary.
GCC and Clang and Perl and Python and V8 are fantastic and lovely and incredibly important to everyone, but i challenge you to find me any C++ IDE with better code completion and tooling than Visual Studio.
The Eclipse C++ support is also pretty good these days. But it was too long ago that I looked at Visual Studio to argue anything about being better or worse...
I would welcome Visual Studio for Ubuntu though :-)
This is true. The rest of your argument seems to operate on a wrong definition of what free software is: http://www.gnu.org/philosophy/free-sw.html
I think a better approach is to allow users to pay what they want (maybe with a specified minimum). If it's pitched the right way, some users will happily pay more than you'd charge them, but you're still letting poor (or stingy) users get your software, and (as a side benefit) those users may also recommend your product to others. So the net profit could be greater than if you charged a fixed price.
Regardless, from a technical perspective, we don't really collect enough data about users to know who would be willing to pay more, and that sort of data is a minimum requirement for price discrimination of any kind. We have some pretty firm policies about not collecting personal data unless we absolutely have to, so I don't expect this to change either.
You could make a few guesses though, and for instance charge different amounts in different currencies or countries. You could also do what traditional retailers do, and provide coupons of various sorts in particular venues. We're not technically ready for anything like that yet though.
Pragmatically, I don't think it's a rabbit hole we'd want to go down even if it were no different than what existing publishers are doing anyway.
Also, I can imagine that Canonical is looking out for more and better sources of revenue. A dead Ubuntu is of no use to anyone either.