colorful.elをパクって書いて見た.
こんな感じ(とりあえず,マウスクリックをトリガーに色変更

(defvar my-buffer-overlay nil)
(make-variable-buffer-local 'my-buffer-overlay)

(make-face 'current-buffer-face)
(set-face-background 'current-buffer-face "#222222")

(defun myfunc-set-buffer-background()
(setq my-buffer-overlay (make-overlay 1 1))
(overlay-put my-buffer-overlay 'priority 0)
(overlay-put my-buffer-overlay 'face "current-buffer-face")
(move-overlay my-buffer-overlay 1 (1+ (buffer-size)))
)

(defun myfunc-unset-buffer-background()
(if my-buffer-overlay (delete-overlay my-buffer-overlay) ))

(defun myfunc-before-action() (myfunc-unset-buffer-background) )
(defun myfunc-after-action() (myfunc-set-buffer-background) )

(defadvice mouse-set-point (around mouse-set-point-around)
(interactive "e") (myfunc-before-action) ad-do-it (myfunc-after-action)
)
(ad-activate 'mouse-set-point)

でも,1つ難点が..
これって,faceを使ってるので,バッファサイズが0だと
色が変更されない…(たとえば,起動した直後の *scratch*