Rather random thing to comment on after 2 weeks, I know. I was just reading this and noticed that your redef macro isn't really doing much: safeset doesn't get called by = unless you happen to make a defset to that effect, which seems unlikely.
arc> (def f (x) (+ x 1))
arc> (= f [+ _ 2]) ; no redef warning
arc> (def f (x) (+ x 3)) ; redef warning
*** redefining f
arc> (defset blah (x)
(list (list g x)
`(fn (val) (safeset ,x val)))))
arc> (= x 100)
arc> (= x 200) ; no redef warning
arc> (= (blah x) 300) ; redef warning
*** redefining x
Still an interesting idea to selectively silence safeset, though.