Yes figuring out where the BADI lives can be a problem. However the other issue is whether your logic is really approriate for that layer in the first place. There a lot of bad webclient customizations with logic that really doesn't belong in UI layer, or BOL layer at all. The worst part is that if you then decide to expose your CRM system via mobile, or Fiori, you lose all your business logic or have to recode it.
After experiencing the pain of PCUI -> Webclient transition, I have always made it a point to not put business logic in the webclient when possible. Business logic means validation rules, default values, etc. Things like drop-down lists aren't business logic, but rather "user-interface". That being said however BOL is perfectly fine for use an external API layer. In fact you can even consume BOL objects via gateway .
Yeah I'm weird about finding BADI's as I just read code to find what I need.
Take care,
Stephen