In fact, there is some performance issue. The steal function copies a lot of variables as I can tell. Do you know where those variables are used? I replaced the steal function with an advice like this
(defadvice org-capture-steal-local-variables (around do-not-steal activate))
My capture became very fast after that and I didn't notice any adverse effects so far (using this for more than a week). The only reason I didn't propose a patch like this is that I am still testing it for possible regressions.