Of those reasons, I'm betting #1 is 'No driver support for half the hardware in the system.'
Who wrote the initial drivers? Microsoft or third parties? If third parties, are they still around? If so, why aren't they supporting Win7?
Because that's not profitable. If company X writes windows 7 for old hardware, they can't sell you new hardware as easily.
Mind you, I don't approve of this, I'm merely explaining their rationale.
Does Linux support that hardware?
I have tons of equipment that's better than crap being produced today, but drivers for it don't exist past XP.
Someone wrote the driver for linux, most likely (a) for free, because he needed it, or (b) payed by the company. However, since the linux kernel is far more stable (in terms of API) than windows, the driver just kept on working until today. I've got a webcam that supported up to windows 98. Yes, 98. It works fine on Linux.
Fine, just don't connect your machine to the Internet and put others' at risk.
Microsoft's big "problem" is "free updates". They should have a yearly subscription fee and that should increase as the OS gets older at some predictable rate. That's how to properly price ration an old OS's updates. They simply can't be expected to support XP forever, for free.
On the other hand, they thrive on piracy, so I understand why they have this arrangement.
Morality aside, and thinking just about money: yes, a yearly subscription is what's best for them. I think that's their goal as of Windows 8.1. Buy yearly payments and upgrades would not haved worked 10-15 years ago.