Qt Project
Diagram Scene Example

This gives another detail which I've forgot:
3.5 The connectors/routing engine.

However, I want to stress a danger here:
We/Pierre must be careful here in order to not produce (as community) an unbalanced, distorted program.
If we provide an (e.g.) powerful painting engine bolted on a browser with bugs, instabilities and other blatant problems we will have a great percentage of 'bounces' - ie. users which will be attracted by the distorted (big) feature (the nice painting module, in our example) but they will be pushed away by the frustration caused by the lack of eg. drag & drop between tree branches, problems (bugs) with on-disk (file) management (move, rename etc.) and with DB management (too many to post them here) will ultimate turn away from the program and will promote a negative impression about the program which will undermine the Brand's reputation.
OTOH, the added complexity will make fixing the existing bugs even harder and the users more impatient seeing that their outstanding annoyances are neglected.
That's why I think that we must continually take in account, as one of our main priorities, the balance, the harmony, the equilibrium of the program.
Disclaimer: Yes, if XnView MP would have a "Paint plugin" as well as a RAW non-destructive processing engine I would use them immediately.