A new compiler explanation, available via (declare (:explain ...)) , tells you when a funcall optimization fails because of lack of type information.
(declare (:explain ...))