(apply #'funcall-interactively (car newcmd) (cdr newcmd))
No, `newcmd' is an expression, so (cdr newcommand) contains arguments
that need to be evaluated. In some/many cases this evaluation is
trivial (the args are self-quoting, like nil or integers), but sometimes
the args can be things like (region-beginning).
(defun funcall-interactively (fun &rest args)
[sample hack to define funcall-interactively in terms of call-interactively]
This won't work IMO, why fun would be a cons or a byte-code-function ?
These are the only interesting cases. The other cases (subrp and
symbolp, AFAICT) are trivial.
Stefan