I don't think people appreciate what "abstractions are leaky" means in practice.
The higher in the stack, the more layers of leaky abstractions a piece of software has to deal with.
Ignoring them means weird errors and unexpected behaviors as assumptions break down. Working around them means maintaining random workarounds.
The higher the abstraction level the more workarounds there are to maintain and weird errors to contend with.
"Let's move to the browser" means "more of these, please". 👀