Microsoft isn't the only guy doing this. I understand enterprise/professional customers have gotten exceptions for years, but for everyone else this is common practice on almost all other platforms. I still think it's a bad practice.
Microsoft is just following the other companies that are winning and somehow doing so without pissing their userbases off. Their main asset, as I see it, are people that cannot or will not switch. So as it is for most companies with a semi-loyal userbase: lock it down before the garden empties too much.
IOS has an appstore, Android has an appstore, Mac has an appstore, Chrome has an appstore, Firefox has an appstore, Ubuntu kind of has an appstore. Firefox, iOS and Chrome don't allow you to install outside of their appstore without running different builds. Android makes it difficult, removing it is even more difficult and you lose half your phone in the process. Sure there's homebrew, f-droid, cydia and chocolatey for hackers, but that's a tiny subset. Windows really wants control like everyone else. The internet has changed a lot since the decentralized software and hardware days Microsoft is used to. Microsoft doesn't get to sell their user metrics, control what users install on their systems or where they're installing from. They don't get to charge uploaders or put fees on downloaders/purchasers. The Windows store is pretty much a flop at this point, but they want it to be the canonical way to install software on Windows like every other platform.
Not a Windows problem really, they just get the negative press that every system should get for trying to force people into a garden. If it gains steam years down the road, I could see them pull a Firefox and lock down external installs without 'approval' for security.
Just a few weeks ago I bought a Microsoft Miracast dongle, OS independent or so it claimed. Only way to configure it was to have a Windows10 computer and download the driver/configuration software from their Appstore. I no longer own it. I really don't think this is an isolated problem though.
Edit: Clarification