It definitely can be with scale. Distributing a 33MB app: Google says they've served 70TB, and this would be 170TB without their optimizations
That also equates to over 5 million downloads.
I'm guessing this app is likely pulling in a lot more than $700 for google.
10MM+ downloads on the Play Store (Unsure if Google gives us actual figures on the dashboard)
Google takes a hit on some apps to sell and advertise with others. What's hurting Google in this case is the release of an app update that is bad for customers and bad for the business. While it's just one papercut, the "huh, my iPhone version works just fine" razzing will ring just a bit more true for customers who got bit by the update. Do it enough, and they'll get tired of the hassle and jump.
It's a rough balance, building something scalable that also holds high quality, and separate policy decisions can sometimes lead to truly Kafkaesque journeys for developers and users. It's at least instructive for others. Making and evolving APIs and ecosystems is hard. Think very carefully about the holistic impacts of decisions.
Google rakes in money from all the in app sales, store sales, and subscriptions. Further, google is often the provider of in app ads. Not to mention all the money they get from advertising with google searches and adwords built into (practically) every android device.
And, let's be frank here, a 1, 20, 100mb APK isn't exactly a huge amount of data to host. Especially since there's almost always a linear correlation with the popularity of an app and the amount of revenue google makes from that app.
They aren't exactly operating a charity here. The least they could do with all this money flowing in is support backwards compatibility on their platform.