>>693 のを評価した後、
(interactive-form 'comint-watch-for-clear-command)
=> nil
だよ。

> Once the function is called, all its body forms including the
> `interactive' form are executed, but at this time `interactive'
> simply returns `nil' without even evaluating its argument.
ということで、interactive をどこに置いてもエラーにはならないけど、
単に nil を返す関数とみなされてるだけ。
実際にその関数がコマンドであると宣言するには、interactive が
最初の form でないとだめみたい。

> 条件で呼び分けたりするのも大丈夫なんかな。
そういうことしたい場合は、
(interactive (if (なんとか) (list あれ これ) (list それ どれ)))
みたいな感じにするしかない。