その場合は必要ありません。冗長です。
user=> (defmacro ^:clojure-special-form throw {:arglists '([TAG VALUE])} [tag value] `(throw (Exception. ~tag ~value)))
#'user/throw
user=> (meta #'throw)
{:macro true, :ns #<Namespace user>, :name throw, :file "NO_SOURCE_PATH", :line 41, :arglists ([TAG VALUE]), :tag :clojure-special-form}
と比べて:
user=> (defmacro ^:clojure-special-form throw [tag value] `(throw (Exception. ~tag ~value)))
#'user/throw
user=> (meta #'throw)
{:macro true, :ns #<Namespace user>, :name throw, :file "NO_SOURCE_PATH", :line 43, :arglists ([tag value]), :tag :clojure-special-form}
特殊なフォームのこの説明を参照してください。
参照:Clojureの学習:メタデータ