I guess most of the times it's not about a a dev not caring about the issue - it's about not being paid to address this scenarios.
The default for most of the tools/frameworks is to generate this bloat without a nice fallback for slow connections. Because the industry is focused on people with good connections, because that's where the money is.
Whenever I develop a webapp whose users won't be having a good Internet connection, there's a requirement to support that use case, and I spend time making sure the thing is usable on bad connections, and it's OK to sacrifice some UX to get there.
But on most cases, customers (both end-users and companies that pay me to code something for them) prefer shiny & cheap rather than "works OK for faceless people I don't know they still live like I did 15 years ago".
TL;DR: it's an economics issue, as usual.
----
PD: I've spent five hours yesterday to avoid a 70% packet loss to the router in the place I've recently moved to. There's a (top) 6Mbps connection on the other side of the router. I'm suffering not being on a top-class connection - but that's _my_ issue, not my customer's, nor my customer's customers.