you can use the lower level stuff sure, but its based on DX9, which is a bit of an issue not too bad though, sprite renderer and stuff is done for you already, and there's some built in 3D stuff but just avoid the built in 3D stuff like the plague
its because as a framework monogame is basically feature complete at this point. the only thing that needs doing is bug fixes and those are few and far between
they are really waiting now on the FNA team to improve their graphics stuff for vulkan and whatever and then i believe mg will be switching to an FNA-provided backend. cpt-max's compute fork is what really gives mg some life now and everyone is waiting for whenever that will be merged in which probably won't be for a while, especially since mg is still stuck on c# 5 for BRUTE compatibility, while the compute fork uses like c# 9 or smth like that
currently the definition files are stored as XML for ease of development. they'll eventually be moved to a binary format which means reflection will no longer be required
a fair bit of .net is built on reflection so avoiding it is not easy at times you just have to be wary of what does and what doesn't work for example everything involving AssemblyAssembly and GetType()GetType() and stuff uses reflection. fortunately the AOT compiler stores this stuff ahead of time so this stuff should actually still work but the dynamic stuff like i'm doing that can't be calculated ahead of time isn't possible so you just need to be wary of what will and won't work
mg basically removes all boilerplate code. if you want to just get on with things mg will work decently well. so it completely depends what you are after. it's not a game engine, so don't expect many bells and whistles, but it has a few
tbf, mg's game loop is one of the best single threaded ones around. you can't separate FPS and UPS though which is the annoying part. it kinda just does that on its own.
nope, not that i can see. i roll my own for two reasons: 1) i do everything myself unless it is something i cannot reasonably expect myself to do, or i can't be bothered to do it 2) my windowing system is specifically for my graphics API and its style fits in with my library