2.) mmm the issue here is not common api vanishing in thin air but more like an entire subsystem is gone or replaced and unlike you think those were marked as deprecated in most cases or was widely publicited and every maintainer of in tree drivers make the respective adjustements but it seems blob maker policy is to fix their code once the kernel is released, so you have a tangible lag between a small fix [stop using spinlocks for example] while in tree developers work with the fixes from rc1.
in kernels you regularly don't have backend[like to know where you get that idea] or frontend since a kernel is not an library, a kernel api is much more bare metal than you think, aka things like InitUSBport(my_type usbid, bool isReady) don't exist at this level, what you get is DMA access, registers, buses adrresing, memory operations, cache operations, bit manipulation, ASM support, etc aka the smallest possible blocks needed to interact with a piece of hardware, use wikiedia or kernelnewbies.org for a more in depth idea
3.) i think you need to see for yourself what is package unfriendly i reccomend you to download nvidia driver from ubuntu and uncompress the deb packages and check out the scripting in there <-- will be crystal clear for you then[or rpm from fedora whatever you like]
4.) is the cheap way not the more efficient way and to achieve that you need to use every dirty hack in the book to keep the fps going good enough hence why these blob have such a ridiculous amount of LOC.
5.) you are wrong fglrx or nvidia blobs even if they release the full source won't be used at all to improve linux drivers cuz it will take years of work to understand and get something useful or usable from that mess what OSS drivers need is documentation[asm level] and more developers[hard part]