I couldn't agree more with this positive appraisal of code generation. Auto generated code is where the fun begins and the time savings explode. I know I have saved several man months of work through code generation.
However, code generation as an activity separate from the focus of "real" software development is an artifact of rigid old languages with a poor "meaning/code" ratio, i.e. languages that tend to contain too much code that does not really express design but needs to be around for the truly expressive code to run. The next step up is cutting out this boilerplate middleman entirely - which is why OCaml is on my reading list.