if anyone is interested in this, a simple defadvice appears to be a good option, I put
(defadvice org-babel-execute-maybe (around org-babel-stop-on-collision)
"stop execution of result file defined more than once"
(let ((info (org-babel-get-src-block-info)))
(setq result-file (cdr (assoc :file (nth 2 info))))
(if (save-excursion
(goto-char 0)
(re-search-forward (concat ":file +" result-file) nil t)
(re-search-forward (concat ":file +" result-file) nil t))
(error (concat result-file " defined in more than one source block"))
ad-do-it)))
(ad-activate 'org-babel-execute-maybe)
in my .emacs and appear to get the desired functionality