Yup; I can reproduce this in Emacs 29, too. I've poked at it now, and
it's surprisingly difficult to fix this, due to the way these functions
are constructed.
I must confess I tried to fix it before I create the bug report (as I usually do since I feel like maintainers are already quite busy...) but gave up: There are so many regexps to match the function keyword, the cache, etc.
But I think I've got it working now in Emacs 29.
Thanks a lot! I'll test this this evening.