Consider this test function (tested in emacs -q):
(defun foo (start end) "for testing purposes" (interactive "r") (when (region-active-p) (cons start end)))
M-x foo gives no results printed in the minibuffer, even when a region is active.
If I evaluate
M-: (call-interactively #'foo) the cons is printed in the minibuffer.
I'd be happy to know why nothing is printed with