recipe_eval always assumes something changed.

just dupe the run context and run inside of that. Hat tip to:
http://realityforge.org/code/2012/07/17/lwrp-notify-on-changed-resources.html