Nima,
I would have to disagree with the idea that workflow and portals should be part of the code, since I have not used them for any projects yet. I guess it depends on what you are building.
I think the idea of seperation of Core and Packages is the way to reduce the complexity of maintenance and release, but then we have ended up with inconsistenly maintained packages. So maybe we need some better solution.
I definitely agree that OpenACS needs object orientation for core organization. Its not quite true that OpenACS has no code/data model conventions, they are documented, but maybe not consistently applied so this is definitely an area for improvement. The priciple author of Ruby on Rails has said more than once that the code generation is nice, but not really the key feature of Rails at all. Its handy, its something that's not too hard, and it is useful to get something simple going quickly, I have used this kind of feature myself. I just think code organization, api consistency, and documentation are much more important. Design of APIs so that their use is clear and probably removal of the hundreds of ancient unused tcl utility procs is probably a good start so new developers can see more easily what APIs to use.
I think you over-estimate the value of code generation.