To reproduce (eval in scratch buffer)
(define-key global-map (kbd "C-c C-l r") 
  `(menu-item "2" switch-to-buffer
              :filter ,(lambda (cmd)
                         (print (format "Called in %s" (current-buffer)))
                         cmd)))
(with-temp-buffer
  (with-output-to-string
    (describe-buffer-bindings (get-buffer "*scratch*") [3 12] t)))

This outputs:

\"Called in  *temp*\"

Expected: the filter function must be called in *scratch* since this is
the buffer you want to check the bindings.