your code seems very intersting and i have been looking for something like this for a while. yet for me it opens a new frame without org capture. i use linux (arch) and put in the following code. please note that when i evaled your code it said:
`flet' is an obsolete macro (as of 24.3); use either `cl-flet' or `cl-letf'.
(defun make-orgcapture-frame ()
"Create a new frame and run org-capture."
(interactive)
(make-frame '((name . "remember") (width . 80) (height . 16)
(top . 400) (left . 300)
(font . "Pragmata Pro-16")
))
(select-frame-by-name "remember")
(delete-other-windows)
(flet ((switch-to-buffer-other-window (buf) (switch-to-buffer buf)))
(org-capture nil "t")))
;; delete the frame in that case
(add-hook 'org-capture-after-finalize-hook
(lambda ()
(when (equal
(cdr (assoc 'name (frame-parameters (selected-frame))))
"remember")
(delete-frame))))