The "go and buy something else" attitude won't be one that Apple has. They won't want to watch their customers go elsewhere.
I think at this point they've made it clear that they want some of their customers to go elsewhere. They want to sell to people who value particular traits heavily, and especially "style". Because if you're selling people an upgraded GPU, every machine you ship has to cost a bit more to make. If you're selling "style", it's free once you've done the design.
So if they try to compete on hardware specs or functionality, they're up against other comparable machines, and they have to cut costs or make things obviously better. Those hurt profit.
If they make a machine which can't use any existing hardware, then you have to choose between that machine and Everything Else. You get stuck in their ecosystem, at least for a while, and you can't even make the comparison on specs or functionality, because the machines just don't compare at all. How much is the Retina display worth? No one knows! It's not an option in other hardware, so you don't have any way to compare otherwise-identical machines some of which have Retina displays and some which don't. You can't come up with a clear evaluation of how much that "upgrade" is worth.
That's why you couldn't get a non-Retina display on the Retina MBP, or vice versa; they had to make it so that you couldn't do the head-to-head comparison, because if you could, people would start pricing it out and deciding what it was worth. Instead, you get the Retina machine, which has no ethernet but has better cooling than old models, and the non-Retina, which is totally different. You can't do a meaningful comparison anymore, so they can stick a number on it and have people say "oh, that seems reasonable, there's nothing like it I can compare it with".
Thing is, the customers who want all those features and will comparison-shop? You can't make a ton of money off them usually, because if you were making a ton of profit off them, someone else would see that, and undercut you. And Apple's currently very focused on maximizing
profit, not revenue. If they can sell a $3k machine and make $600 on it, or a $2.5k machine they make $1k on, they're gonna do the second, because that's a lot more profitable.
That's why the ipods and iphones have never let you upgrade or replace storage, or even use cards, and never will. Because if you could do that, you wouldn't be paying Apple $100-200 for flash storage you could buy for $50 elsewhere. Their profits would go down.
And they miss a lot of sales with this, yes. But say you could sell 100 items and make a profit of $200 on each, or 1000 items and make a profit of $15 on each. You make more profit with the smaller, but very profitable, market. And keep in mind that the profit margin swings a lot faster than price does. Say it costs you $300/item to make the things. Sale price difference, $500 vs. $315, that's not even twice as expensive. Profit, $200 vs. $15, that's more than 10x the profit.
I think this is a short-term strategy by nature, though. In particular,
developers are disproportionately likely to be in the unwanted category of "people who pay too much attention to technical details". I've seen a few people who develop apps I care about losing interest over this. I'm losing interest, and there's a thing I did for iOS/Android a while back, and I was gonna make the rework do desktops also... And I may not bother with Mac. Two years from now, I almost certainly wouldn't do the Mac port, because by then I expect to have finished migrating.
So, Apple absolutely wants to watch a lot of customers go elsewhere. They've made this clear and it's been a big part of their product strategy for several years now. I just think it's a short-sighted strategy that risks moving them back to the days where every Apple headline had to use the word "beleaguered". They have a ton of cash, but I think they're starting to lose market share pretty noticably again.
As a data point, I basically hate Android, but even though I have an iphone, my primary phone number stays on Android, because of things like "can put in a micro-SD card".