Does glutin uses winit under hood?

If yes then is there a way to use winit instead of glutin with manually created (and destroyed) opengl context?

Seems so.
Not too sure about using another window backend.

I'm not too experienced with rust/gl (I used to dabble with C#/dx) but if I'm correct gl functions are static; as in there is no object attached to them in an object oriented way. This means that you can probably just attach an appropriate window backend which can manage an opengl context for rendering (Or do it yourself) and go straight to using the gl functions exposed in glutin

It seems like glutin itself only creates OpenGL context and everything else (window management, events, etc) is just reexported from winit. I didn't find any trivial way to actually create OpenGL context for existing winit::Window but that's not critical.