If I didn't already like the structure of the engine I for sure would have said no instantly but I'm used to the object model and I actually like it. Most of my development pains have to do with becoming more data driven than with the object model itself. I also have plans to extend to other platforms like Mac so investing in the organization of the engine will pay off in the long run.
Once I decided to do some cleanup around base classes I decided to go all out and take it to the complete level of platform abstraction as well. This means abstracting everything from Matricies to Mutexes. Obviously this has created a bunch of churn which I'm still in the middle of but I like the new feel of things already.
My new set of base classes have a tonne of functionality which is now totally platform independant and easy to test. That means a potentially rock solid core to build new features on and support new platform with. As a small indie shop that really is a huge selling feature. I can't compete on crazy feature sets for games, but I can compete on quality and speed of development. Having a solid engine that I know and can tweak if needed helps to give me that edge.