Well, you’re going to get the question of “why not” when such a question is asked in the first place…
The trick is, there aren’t many solutions, and knowing why you need to avoid using wglGetProcAddress() is pretty much necessary to providing an alternative.
As others have said, if you really want to, you can use GetProcAddress() instead, but this just adds a couple of steps to the process and doesn’t really gain anything.
If portability is the concern, realize that there is no portable way to get function pointers to extension functions. This is a small set of initialization code that is going to have to be written for each platform your application runs on.
Personally, I don’t like the “it shouldn’t matter why I want to do it” mentality of folks asking for help. Quite often the pathology of their situation is in why they want to do it that way as opposed to how to do it; it is very often much, much easier to solve the problem through changing the why as opposed to explaining the how.