There are many rants on the internet about code bloat. They often focus on waste. I think this misses the mark.
The problem with code bloat is that it slows down development in the long run. Every line of code you ship is a line of code you need to consider when debugging a problem. Every interaction between modules is an opportunity for a second order effect.
When your program doesn't work, where will you look? How many cases do you need to consider? What tracing will you need, and how many systems does that trace interact with?