Sure, we could optimize the heck out of everything. But at what cost? There is a reason many developers rail against premature optimization. It would cost much more and development would progress much slower. Hardware is cheap. Developer time, not so much.
Hardware isn't cheap, certainly not multiplied by millions of instances. It's just that you don't have to pay for it. But someone down the road will, be it other people or future generations.
You're also confusing premature optimization with skillfull use of resources. Not driving a car with the handbrake on isn't premature optimization.