BKE_animsys_evaluate_all_animation() was only called within within do_render_seq() so parameters within the compositor weren't being reevaluated on each frame update.
Moved BKE_animsys_evaluate_all_animation() in to do_render_all_options(). Not sure if this is correct, but it seems to work. This is my first commit and I'm still trying to work things out ie not sure if external render engines evaluate the animation system themselves.