After some discussion with the hacker lists, this should not be considered a bug.
quote from tom lane's comments:
More generally: there are probably dozens, if not hundreds, of messages in the backend that say "function" but nowadays might also be talking about a procedure. I'm not sure there's value in improving just one of them.
I am pretty sure that we made an explicit decision some time back that it is okay to say "function" when the object could also be an aggregate or window function. So you could at least cut this back to just handling "procedure" and "function". Or you could change it to "routine" as Julien suggests, but I think a lot of people will not think that's an improvement.