コマンドを実行した後にmark-activeがnilになるのは、emacs本体に
コーディングされているからね。まあ、無理矢理やってやれないことはないけど。

(setq keep-mark-active nil)
(setq deactivate-mark-hook nil)
(add-hook 'deactivate-mark-hook
(lambda () (when keep-mark-active
(setq mark-active t
keep-mark-active nil))))
(local-set-key "\C-c\C-a"
(lambda(beg end)
(interactive "r")
(save-excursion
(goto-char beg)
(while (< (point) end)
(beginning-of-line)
(insert "> ")
(next-line 1)))
(setq keep-mark-active (and transient-mark-mode mark-active))))

C-uみたいな、続いて指定されたコマンドの後にmark-activeを復活するような
コマンドを作ると少しはおもしろいかも。

ちなみにリージョン行頭に文字挿入ならC-x r tな。

>>618がいってるのは、範囲指定の編集はnarrowするのがemacsの伝統で、
これはwidenするまでそのままだからなんのコマンドでも好きなだけ同じ
範囲に適用できるってことだと思う。

ところでnarrow-regionしている間mode lineに何か表示するelispってどこかに
ないですか。