I'll be a nerd and say, Technically the iPhone 4S has a HSPA radio, 14.4Mbps not HSPA+ 21Mbps.
The ITU relaxed the rules and said anything that's 14.4 and up is 4G so that's why they can do it on the iPhone 4S but not the 4 as that's a HSDPA (+HSUPA) device.
Apple should have done it on all iPhone 4S devices but I agree that they shouldn't have bent to AT&T in the first place. Call it what it is, Android (stock) puts a H there or H+ to signal HSPA+ rather than "4G" then it falls back to 3G when idle. That, IMO is how it's supposed to be done. Leave 4G for LTE devices as that is a definitely different generation being a completely new network and all that.