It seems to me that with-redefs can do everything that binding to a dynamic symbol can do, only it doesn\'t have the limitation of needing the ^:
with-redefs
binding
^: