You probably know better that me, it was the main point of difference between the PLi team and OE-A. But we had the same discussion with others too, for example OpenWebIf.
Code should not be littered with "if-this-box-then", code should not have to check for proc values, or access the hardware directly, etc. There should be abstraction and separation of duties, It's a fundamental software architectural principe. Which is why we fought to introduce the manufacturer BSP's, and which we strongly believe all hardware dependencies should be part of that BSP.
For example, a BSP should export transcoding as a feature. So the code could just check if the feature is there or not, regardless of the box. If there are more than one way to transcode, the BSP should contain the abstraction layer, so Enigma and friends have a single API to talk to.
Unfortunately, since this a very fundamental principle, it only works if everyone implements it. If we do it alone, we loose too much compatibility.
So I strongly feel this issue is preventing any real innovation, for all of us. Instead of all working towards a common goal, there is way to much reinventing of wheels...
Currently in use: VU+ Duo 4K (2xFBC S2), VU+ Solo 4K (1xFBC S2), uClan Usytm 4K Ultimate (S2+T2), Octagon SF8008 (S2+T2), Zgemma H9.2H (S2+T2)
Due to my bad health, I will not be very active at times and may be slow to respond. I will not read the forum or PM on a regular basis.
Many answers to your question can be found in our new and improved wiki.