I am looking for a function that returns a function (preferably quoted) for a given key binding. I know about C-h k (e.g. M-x describe-key), but I am looking for a lower-level function. (My use case is that I want to save a previous key binding before rebinding it.)

Not an answer, but perhaps of interest given your question: check out bind-key, which is part of use-package (github.com/jwiegley/use-package). It's a nice wrapper for defining keys that let's you easily see all your personal bindings and what they've replaced.
– glucasDec 15 '14 at 22:25