I tried the following to get an Imenu composed of babel blocks, so that you could browse/jump to blocks. But it doesn't seem to work, I'm guessing that something about how org-mode builds the imenu-generic-expression overwrites my entry. Is there a hook (or could there be a hook added) that allows me to imenu-ify more constructs?

  (push (list "Source code chunks" "^#\\+\\(source:\\|srcname:\\|function:\\) \\(.*\\)$" 2)
        imenu-generic-expression)