The only time I "hate" parts of C2 are when I hit engine design choices. Yeah some times I feel something is missing or should be handled differernly. Most of the time I just code around those issues.
however sometimes there is IDE design limitations or engine issues that I can't avoid.
No extensible IDE. I cannot draw gui widgets on the editor. Many other tools let you do this.
No image atlas. I personally believe that binding the imags to the sprite is the wrong design. Instead images should be atlas by the developer and sprites then reference images in the sheet/atlsas.
Cannot unload objects. Without this developers cannot create vast streaming worlds.
There is no modularity. it's annoying to pop in designed works. I need to duplicate the objects before copy/pasting an event sheet. currently I just have a master game frame work that does a lot of the gui work done.
Plugin Reload. Would be nice if plugins after editing the edit time version of a plugin. that the change can be reloaded without closing the entire system.
Can't draw from a behavior. I tried to making a behavior related to path finding. Thought I could draw a bezier curve line from behavior. but you can't draw from a behavior.
Plugin ACE design is bulky.
There is more, but no point going on.
The way I put it
Game Logic issues. No i have no problem. What C2 doesn't have I can do myself.
Engine related issues. Makes we want to just use Unity, UDk or Anarchy. I don't because C2 library of plugins is astounding for a 2d engine.
However because of these engine related issues and the development choices of locking developers out of the nitty gritty. I have never been able to convince my company that C2 is a viable engine for 2d games.