Answering the question about the "unknown" -- the window notification is an override and it means when that was initially written, the function of that parameter was "unknown." It may still be unknown, but it's named that way to reflect that the type is known but what it is used for is not. Regardless, window notification is something we are using from the EQ Client rather than something that was coded separate so the parameters will match the EQ function even if we don't (know how to) use them. So this function definition matches what MQ2 knew about the function when the code was written.
A good practice when you come across things that make you go "hmmm" is to throw in a TODO item or a FIXME so they don't get lost. You had a couple good finds (Free Inventory Space is an exposed function so you don't need to parse a TLO for that info). In that case put a
// FIXME: use the exposed FreeInventory function instead of parsing
so that whoever hits that again easily comes across the things you already found (even if that someone is future you). It's a good way to note that you noticed something, but that you also feel it's beyond the scope.
I prefer the asterisk on the left, if you had put it on the right I would have looked further down in the code to see if you were being consistent, but since it was the way I prefer it there's no reason to look at code you didn't change. Note that as you said, it doesn't matter and code review, when style comes up, is more about consistency. But generally style doesn't come up. There are arguments both ways -- if you declare multiple variables in the same line, it makes some sense to have it on the variable since otherwise you're (accidentally) not declaring a pointer in that case. However, just don't declare pointers in one line. The reason to put it on the type is because a pointer IS a type. "This is a variable whose type is a pointer" versus "This variable is a pointer to a type of." It has more to do with thinking about types than anything else. You can see this throughout MQ2 where Something* is aliased as pSomething, which actually makes the multideclaration issue worse, but illustrates the idea of thinking in terms of the type being a pointer rather than the variable. But, style, I would have taken it either way in this specific case.
And the answer to your On Pulse "hrm" is probably "The other one's the global."