You are correct that it would be possible to add NVFBC support, sure, but currently the NVIDIA Capture SDK only makes that functionality available to professional-tier GPUs (Teslas and Quadros) (See section 1.4 in the release notes:
http://developer.download.nvidia.co.../7.1/NVIDIA_Capture_SDK_7_1_Release_Notes.pdf). NVFBC is not available on consumer-level cards, even the new RTX 20XX series. Even the Looking Glass example that you posted acknowledges this shortcoming.
That's a pretty major shortcoming, making it nearly useless for almost everyone who uses OBS unless they happen to have a professional tier card. If they have such a card, it's not likely that they are having severe enough performance problems to make such an addition worthwhile.
Thus, the reason not to implement this right now is because the amount of of people who would benefit from it does not justify the amount of time that it would take to implement it. There are simply more important things to work on right now.
Wait a minute!
First - it is available on any customer Nvidia card starting from GTX 6XX series!
Just gen in here if AppData\Local\NVIDIA Corporation\NvFBC and you may find a log of NVFBC and NVIFR like this
## 2017-04-03 11:13:16.268 | NvFBC | PID 18392 ## : NvFBC_GetStatusEx :: Success (NVFBC_SUCCESS). .
How am i reading and having this is its not available" ? XD
How my Shadowplay works? How my STEAM streams game to Moonshine and Nvidia Shield and my Androind phone?
They all utilize NVFBC*.dll that comes shipped with every driver since 320* .
There is a difference between "not available" and "legaly restricted to use".
Also, this restriction only started to apply to recent versions of capture SDK, the PDF of old 2016 SDK version which i linked above does not have any legal restriction, and its cant be retroactive, new license terms applies to newer SDK, not older. Also. license terms apply to SDK as whole. but not to some stand alone headers and libs taken out of context.
So solution is simple - get older sdk pre GRID\TESLA only and get headers from it... or. get recent SDK with recent headers and mix them with older SDK and pretend like they old and, give no crack about new license terms for newer SDK, since you only need few headers and libs to compile.
Just in case - i have master of laws degree and know what im talking about in terms of laws.
Surely you will enter legaly grey area - but Nvidia would not sue you for that, its not an issue for them that will do them any harm, they may not even nottice, and even if they will and try in worst case - OBS has such a huge fan base it will hurt Nvidia reputation and they will fall back and most likely under preasure of negative reaction will remove restriction and will most likely grant legal permission to OBS or anyone.
Just imagine every twitch and other service streamer who uses OBS will see announcment on this site or in OBS itself that nvidia try to sue OBS for using NVFBC or requesting to remove (this is really not going to happen, dont be so scared) it - hundreds of thousands if not millions of people will spam nvidia with demands and other not so pleasant words of dissapointmen, and even some gaming sites will surely write about it and nvidia will have to back off. So you should not be afraid to possibly violate this minor license term, or not really violate it if you would get older SDK version which does not have such license restrictions!
You, western people, are so bullied and scaried by corporations and goverments, and so afraid to do any minor thing that violates something... in Russia we simply dont care much and do what we want with any API and source code and in most cases nobody gives a fruck about any russian software violating any license terms. Maybe you should learn this legal bravery from us? You have an huge army that will protect you in case someone will not be happy that you added NVFBC\NVIFR support to OBS... and even chances of that someone in Nvidia will be that much so unhappy that you implemented api support - are very low, so risk is low and you really have to try doing that.
Also, if you are so legal and so afraid to enter grey are... you can always just contact Nvidia (like their forum moderator ManuelG) as OBS developer and request invidual license permission for OBS to use it. And im pretty sure they will grant it to creator of such a popular software that will surely help NVIDIA to win more customers as OBS users will benefit a lot in terms of performance when using OBS and OBS will simply become yet another promotion source for NVIDIA products (which you should mention to nvidia when you will request permission, so they can realise obvious benefits of implementation of NVFBC and NVIFR in OBS)! You did not yet try to get license permission for it, did not you? Please, try!
You can also try to request some help with implementation of compostion the most effective way that does not waste much of gpu or cpu power or maybe joing the forces with NVIDIA to let Shadowplay and OBS communicate, so that, for example, Shadowplay would have option to not stream to service directly, but would stream into local OBS which would do the rest of job and would report back to SHadowplay number of viewers and stream status and composed overlays... just saying. Nvidia is very helpful to developers of something popular and OBS is very popular and inspired whole Expirience streaming feature.
In worstest of all cases - you can cut the NVFBC source code part from public open source version, yet release officia compiled binary with its support... which would be overkill since nothing bad will happen so you dont need to do that, but in case you afraid that much this is the last resort.
i forgot to mention - license says about usage of SDK of recent version, but i dont see it restricts shipped product to use nvfbc api on customer cars. So you can use this wildcard as well ;-)
And about this part:
Thus, the reason not to implement this right now is because the amount of of people who would benefit from it does not justify the amount of time that it would take to implement it. There are simply more important things to work on right now.
Once we already cleared out that API is AVAILABLE ON ANY CUSTOMER GEFORCE CARD and CAN BE USED BY OBS, let me remind you that NVIDIA has majority of market and most of GPU owners has NVIDIA card, so amount of people who would benefit from it as HUUUUUUUUGE, basically every nvidia owner who uses OBS will benefit from it. Last time i checked this
https://store.steampowered.com/hwsurvey/videocard/ which was just right now - 74% of steam users will totally benefit from implementation of NVFBC in OBS.
Let me remind you benefits:
No performance affects on games at all, no cpu or gpu utilisation during capture (and encoding as wel in case if combined with NVENC which is implemented in obs) - which is the most important part!
Almost 100% compatibility and direct hardware capture of basically any fullscreen and desktop app.
Very low latency, perfect video and audio sync for those who loves imediate streams.
Easy implementation - seriosly, look at code from links above, its as easy to add to OBS it can be done in one day, and with testing and debuging it could take a week or two before ready to be release. You dont need to invent a wheel - use sources from above, copy and past code path for other capture source, leave the "shell" that wrapps it around and replace core of copied capture code with nvfbc capture code from examples above, then modified it to make it works, and add toggle option and few settings for it to UI and thats about i. then testing and debuging would take the most of time. If only i would not be such a lazy and busy to re-learn forgotten by me not so often used programming languages, i would add nvfbc to obs myself. I dont remember syntax and some details but i remember basic principles and whole algoritm and i dont see this taks as hard and time consuming. I bet such an expirienced and talanted coder as you are and rest of OBS could do this at single weekend.
Maybe you could just at least try to mess with NVFBC ... PLEASE? People wainting years for this to happen in OBS!