if i am not mistaken, imenu only works for a single buffer, while org refile goto can go to any file configured for it.
at least, i /think/ imenu cannot be configured to, for example, find a shell function definition that is not in the current file. for example, you might be in a script called myscript1, with a call like "myscript2 myfunc", where myscript2 is a script that defines myfunc and calls it when its first argument is it. if htat made sense.... then again maybe xref and dumb-jump cannot either. i have not investigated.
--
The Kafka Pandemic
A blog about science, health, human rights, and misopathy: https://thekafkapandemic.blogspot.com