Another argument in favour of code bloat is that todays RAD tools don't generally create optimised code.
Programmers wrote efficient code because CPU cycles were more expensive than programmers time. Now processing power is so cheap, it's swung the other way - it's cheaper to let the processor bear the brunt whilst the programmer does the job as quickly as possible.
That's a big reason. Code generation has done more harm to coder proficiency than anything else since the invention of the compiler (only partly in jest).
Now not only don't we know how many clockcycles an operation takes or how much memory it needs but we don't even know what will happen (and if we care to look at the generated code more often than not we either don't understand it or the IDE doesn't allow us to change it to something more efficient because it changes it right back).
It's one thing I always look for when selecting development tools: the capability to control code generation (including turning it off...) and to freely modify whatever code is generated to match my needs so I don't have to fit into whatever makes the code generator tick (which is typically built to create the easiest to generate code rather than the most efficient code).