The reason for the current behaviour is, that if the caret is outside a block (i.e you are editing another block further down), then it is less likely that the block on top is of interest.
The hint is about the code, that your are editing at current. That is why it follows the caret.
If you are not in the top most block, then the procedure declaration is already visible, so it is not shown. (It's like some html editors showing you the list of opening tags in which the *current* element is nested / same here "current element", not "top most visible")
Also, this means less "flickering" of the top hint, when you are scrolling down (caret at bottom of screen, cursor down key in use)
I think the current behaviour should be kept. But there is no issue with adding an option, and have your desired behaviour too. (Just needs to find someone to implement it / code is in ide/SynSourceEditor (or SourceSynEditor))