If your E2E test is flaky, then how is your production environment reliable?
> they can require a lot of setup
Setup vs mock.
> they can be very slow, etc.
We have a good handle on scaling, slow is now a product of the testing time being smeared across your org like peanut butter.
> The purpose of unit testing...
Does E2E replace unit testing, no. Things that are already units or esoteric (business "logic", you know it's in your code base). But if your writing mocks your better off un fucking your environment that E2E testing is viable, and make it a first class citizen. Everything is a crud app of some sort: web, api, mobile, smoke signal... Dropping data in these front ends, can be validated out of the back end, and in the app itself.
To put a fine point on it: Unit tests make me feel good about checking in. End to end tests make me confident to deploy!