in reply to Ambiguous use of X resolved to Y

I believe you're running into magic autodisambiguation of hash keys versus non-words. In short, the first example is also a symbolic reference. It's just not in quotes, which makes it hard for Perl to tell whether you want it to be a quoted string (since it contains non-identifier characters) or you want to use the result of a function call as the hash key.

Wow, that's an unclear paragraph.

I seem to recall that just taking a reference to the function doesn't quite do the right thing when local is involved, but I'd try my $old_sub = \&Pod::Html::scan_podpath; first. Hook::LexWrap is definitely a better general choice, though.