Are you implying that this is automatically done when the context is created?
As in if I do nothing special, no library from absolute scratch implementation, create a OpenGL context targeting my applications highest supported version. I will automatically get support for those version's functions
Or are you saying that the library that you are using does some additional work to check?
Loading a dynamic library is a task of the operating system in the end. One step is to resolve all symbols of the library that are marked as to be resolved automatically. If the OS cannot do that for at least one symbol, then loading the library fails. So the library uses symbols it expects to exist directly, and any useful symbols that just may exist are checked inside the own library initialization code, so to say. Details depend on the running operating system and used compiler/linker, of course.
Are talking about the ARB extensions here? Functions such as GL_ARB_Map_Buffer_Range?
Yes; ARB, EXT, perhaps even vendor specific extensions (depends on the target platform). Using something like GLEW in-between is possible, of course, but it does not unburden you to check for availability.