Per-method recursion guard

Smaller chunk of #460.