I actually really like BP. As a developer, I see the advantages from a team standpoint when it comes to reusability and safety inside BP.
BP separates the developers from level designers and artists. Its easy enough for level designers and artists to use, while still being safe, think Type Safety. They have the ability to test and change things without directly affecting the source code, in a very easy manner - something that a developer should be quite thankful for.
Additionally, it should free up time that the developers have to spend on individual tasks. Instead of having to go directly to source code to reuse the same classes, you can extend the functionality of BP via the source code and delegate out these monotonous tasks to your level designers. Leaving the developers to tasks such as extending functionality of the engine and more complicated game development tasks.
As a developer, it took me a long time to understand that languages, extensions(such as resharper or spy++), etc. Are just more tools I can put into my toolbox. The whole idea around programming in itself is taking monotonous tasks and automating them. When something on the development side seems “cheap” it may just be that it’s freeing up your time to work on more appropriate tasks.