"But most (decent) disassemblers would at least pick up a hint of that and
try to label the location."
My experience is that most disassemblers are not decent. And even a decent
assembler recursively follows code branches isn't going to figure out any
but the simplest computations addresses.
It takes an AI, a brain, and maybe experiments actually running code to
infer the semantics of algorithms.
Even static analysis to determine whether code will "halt" or run forever
is an NP-complete problem ("The Halting Problem").
-- John.