Making people implement their own services proved to be problematic, because most developers didn't care enough to optimize their services for low memory and battery usage, resulting in terrible battery life on Android devices. Since Android must compete against iOS, a central system had to be established to reach similar battery life.
That's kind of a cop-out though. It certainly could exist without Google's involvement if the location provider were a pluggable module within AOSP. microG does this - my phone supports the fused location API using Mozilla's location database instead of Google's. (There are other modules too, like a local database of cell towers if you're willing to dedicate some storage to it.)
Push notifications and Google login sure, but some of what's in the Play Services APIs should really be in AOSP, IMO.
EDIT: For that matter, you could even have the push provider available as a module too, even though Google's push service is the only one currently available.
But in general, I don't get what your expectation is, that Google will spend millions developing an OS and then give it to competition or deliberately provide worse user experience than their main competitor?
AOSP may not be as fully featured as it could be, but it's clearly quite possible to use Android without Google.
If you don't want Steam, don't use games that require it. If you don't want Google services like Google's Maps widget or its push messaging service or its game leaderboard, use apps that use another data source for maps and another persistent connection for push messages and another leaderboard service.
F-Droid and Amazon's App Store are filled entirely with apps that don't (can't) use Google's services, yet many on HN blindly continue to claim that this is not possible.