The main obvious thing, that makes proprietary game engines (and games in general) bad, is reinventing the wheel. Though, open-source engines don't break this rule either. AFAIS the main reason is unappropriate aims at the stage of planning and development. Screaming about modularity doesn't make things better, maybe it isn't implemented in Right Way?
I dream of a world with separated library for game mechanics, which permits describing it in comfortable language, separated library for 2D graphics, separated library for 3D, two latter could be interchanged in convenient way. Don't take it seriously, I have no experience in gamedevel at all, but I'd like to start it some days in Right Way. Now I am to see, if it exists at all.