Eric's comments are really spot on - if you accept any of the advice in this thread, re-read his post! While not as extensive as C4, I have a similar feeling and background with Hieroglyph 3. It started out as a learning project, and has over time been upgraded, piece by piece, into what it is today. The only additional caveat that I would add is that instead of throwing away an entire component, be sure to take away whatever you can from it. Even if it is learning what not to do, there is always information available from a given implementation!
Good luck, and gamedev.net is your friend