Because the 'def macro uses '= to define functions, variables and functions are occupying the same namespace (sort of).
For example:
(def foo () (prn "bar"))
(= foo (fn () (prn "bar")))
> (def foo () (prn "bar")) #<procedure: foo> > (= foo "foo") "foo" > (foo) Error: "procedure ...r/src/arc/ac.scm:1224:11: expects 2 arguments, given 1: \"foo\""
Though, that may not affect your usage here since power is just an argument and not a variable itself.