Re: It wasn't just apps
I thought the orphan devices had a lot to do with it - i.e. Windows Mobile 6.x devices couldn't run Windows Phone 7.0. OK, as expected.
A certain HTC HD2 disagrees. Not only it ran WP7, it also ran WP8, Windows 10 Mobile, Windows RT, and Android (up till either Nougat or Oreo, don't remember which), and was the "jewel" of XDA-Developers for quite some time. This is because M$ used it for testing WP7, and the bootloader's "secret" leaked.
Windows Phone 7.x devices couldn't run Windows Phone 8.0. WTF?
IIRC, the argument was Secure Boot or something.