Earlier quoted context omitted.
I have somewhat mixed feelings about this. On the one hand, block-based "programming" does allow children/newbies to construct something that works. On the other hand, almost nothing usable is being programmed this way. So I'd say it's more or less fine as a kind of introduction to general rules of programming, but the sooner you get to the actual code, the better. That said, microcontroller programming is something…
I think it's more about teaching kids/newbies to think in a programming way. That can be language agnostic. You're essentially trying to achieve something "complex" using simple instructions. At a basic level that's a great way to learn programming. As the problems get more complex it becomes obvious why paradigms & architectures exist, and your programming skills can improve.
If I actually wanted to use a block language at my day job I'd want affordances for larger, more complex programs. Compiler or JIT, copy/paste, zooming in and out of parts of programs (ala Prezi or something), integration with source control diff tools, C extensions / integration with existing code, console output, file I/O, etc.