Hi Bjorn,
I've come across the pyodesys and pyneqsys packages before (I think from one of Sympy's wiki pages on code generation) and definitely plan to be using them. I think the unified frontend/flexible backend approach is great and something that is really needed here.
My trouble with Sympy so far has been that my model has a lot of intermediate variables and so isn't represented well as a single expression. I can flatten it into one of course, but it makes more sense to generate code that contains multiple assignments. This is why I've been very interested in your additions to the code generation module.
To get around current limitations I've built a class that manages a DAG of expressions assigned to symbols and supports several optimization and editing routines (like pulling out common sub-expressions and automatic differentiation) that I'm using to generate function definitions. If you think it's a good idea I could try to make a PR for it.
Best,
Jared