It's worth mentioning though that there's often not a 100% feature parity between iOS versions on different devices, typically because of hardware changes. These even applies to devices of the same generation, e.g. iPhone 7 and iPhone 7 Plus have different camera features since the latter has two cameras and the former just has one.
The differences between feature sets on different generations is less and less it seems though. If I recall correctly, the differences between the iPhone 3G and iPhone 4 was bigger than for instance iPhone 6 and iPhone 7. If I weren't such a sucker for new and shiny things, I'd probably buy an iPhone SE today.
And my Galaxy Nexus stopped receiving updates 2-3 years ago despite it being a Google device (mine was also straight from the Google store, so it wasn't the carrier's fault).
Cyanogenmod supported the Galaxy Nexus until 13.0 which is Android 6.0.1. So Google just dropped support after 4.3 (coincidentally the last unsupported version) even though it was absolutely possible to update to newer versions of Android. As a result the Galaxy Nexus doesn't receive security updates from Google and is thus not usable as an online device.
While iOS upgrades are usually free these days, it hasn't always been like this. According to wikipedia, iOS 1.1.3 was a paid upgrade on iPod Touches (while being a free upgrade for iPhones).
No they are right. Due to some sort of accounting thing once upon a time on some of the first iPod touches there would be a small fee to upgrade the OS.
The differences between feature sets on different generations is less and less it seems though. If I recall correctly, the differences between the iPhone 3G and iPhone 4 was bigger than for instance iPhone 6 and iPhone 7. If I weren't such a sucker for new and shiny things, I'd probably buy an iPhone SE today.