I agree with some of your opinion and I'm happy you raised this question,
IMHO feel free to use BOL with another UI elements like FIORI, WDA or even SAP GUI to me makes lot of sense, we are talking about the model and that's the great thing about it, you can plug it where you need to if you have a suitable View and Controller, right?
I made a blog which I share some thoughs about it, I hope you'll find it interesting:
Redetermine conditions in sales orders massively using BOL
But, and I hope we are agreen on this, BOL should be used it in a very specific layer, not in BADIs unless you are pretty sure in which layer is the BADI allocated, it's not the same the ORDER_SAVE BADI than the CRM_BP_UIU_DEFAULTS, right? To me calling the BOL inside the ORDER_SAVE is pretty much the same as calling the api CRM_ORDER_SAVE and In that level of application you may not have the BOL component set up or maybe yes, depends if you are calling it from a WebUI process or from an IDoc, Webservice, BDoc flow, etc. This uncertainty/lack of controll is reason enough to question the design and approach, don't you think? Remeber today we are using Web UI tomorrow we can use...well...whatever
And about performance, I love asynchronous RFC to speed up the data transfer, using BOL in this scenario IMHO is not the best scenario, as you need to load some info into buffers in order to speed up future actions trough the framework, but all this efforts will be worhtless because you will destroy it each time the aRFC is done, of course there are exceptions, if you check my blog you found one of those, I sacrified performance in order to be able to offer a better support during upgrades, enhancement packages or even changes provided by this black box we call SAP.
Cheers!
Luis